capsule AI-native Unix-like composition layer

capsule.yaml

2,744 bytes · 73 lines · capsule://quake0day/[email protected] raw on github

apiVersion: capsule.dev/v0.1
kind: Capsule
name: ext-http-request-logger-dev
version: 0.1.0
type: template
purpose:
  summary: 'Provides the development and testing environment for the `ext-http-request-logger`
    capsule, including linting configurations, test suites, and test fixtures. This
    capsule serves as a starting point for setting up a local development workflow.

    '
  owns:
  - Test files for verifying the logger's functionality.
  - ESLint configurations for code quality.
  - Test fixtures (e.g., SSL certificates for HTTPS tests).
  - Git ignore rules for common development artifacts.
  does_not_own:
  - The core `morgan` library logic.
  - Continuous integration pipeline definitions.
interfaces:
  requires:
  - kind: library
    name: morgan
    from_capsule: ext-http-request-logger
    description: The core HTTP request logger library being tested.
  - kind: library
    name: mocha
    description: Test framework.
  - kind: library
    name: supertest
    description: HTTP assertions for Node.js.
  - kind: library
    name: split
    description: Split a stream into lines.
  - kind: library
    name: eslint
    description: JavaScript linter.
  - kind: library
    name: nyc
    description: Istanbul code coverage tool.
dependencies:
  capsules:
  - name: ext-http-request-logger
    version: '>=0.1.0'
agent:
  summary_for_ai: 'This capsule provides the testing and linting setup for `ext-http-request-logger`.
    An AI agent working here should focus on writing new tests for new features, improving
    test coverage, updating linting rules, or maintaining test fixtures. Ensure tests
    are robust and cover edge cases, and that linting rules enforce good code practices
    without being overly restrictive. The `NO_DEPRECATION` environment variable is
    set for tests.

    '
  avoid:
  - Modifying the core `morgan` logic in `index.js`.
  - Adding production-specific code or dependencies.
verification:
  invariants:
  - All tests must pass for the `ext-http-request-logger` capsule.
  - Linting rules must be consistently applied across the codebase.
x-reuse:
  notes: 'The ESLint configurations (`.eslintrc.yml`, `test/.eslintrc.yml`, `.eslintignore`)
    are tailored to the original project''s coding style and dependencies. Consumers
    should review and adapt these to their own linting standards. The `test/fixtures`
    contain specific SSL certificates used for testing HTTPS, which are unlikely to
    be directly reusable and serve as examples. The `package.json` (which is in `ext-http-request-logger`)
    lists `devDependencies` and `scripts` that are part of this development setup
    and would need to be integrated or modified.

    '
x-reconstruct:
  install: install.json