chore(aiwg): adopt shared BT6 maintainer workflow (#148)

* docs(policy): allow low-impact contributor courtesy cleanup

* chore(aiwg): migrate to shared BT6 maintainer plugin

* chore: reconcile delivery validation
This commit is contained in:
Joseph Magly authored and GitHub committed 2026-08-02 17:17:28 -04:00
1 parent 8f658891f2
commit afc9dad1b2
89 files changed
+4683 -1512

No files matched your search

+116 -14
View File
@@ -1,21 +1,123 @@
# UC-001 — Conduct a Scoped Security Mission
**Primary actor:** Authorized operator
**Goal:** Execute a recon-to-report mission against an explicitly authorized target.
## Metadata
## Main Flow
- **ID:** UC-001
- **Status:** Baselined (brownfield)
- **Level:** User goal
- **Scope:** Mission, target, orchestration, arsenal, evidence, and reporting subsystems
- **Primary actor:** Authorized operator
- **Goal:** Execute a reconnaissance-to-report mission against an explicitly authorized target without exceeding the rules of engagement.
- **Related stories:** US-01, US-02, US-04, US-05
- **Quality drivers:** NFR-01, NFR-02, NFR-03, NFR-05, NFR-08
1. Operator defines target and rules of engagement.
2. System validates target/scope inputs and creates mission context.
3. Admiral plans tasks and assigns operator roles.
4. Operators invoke approved arsenal capabilities within scope.
5. Tool outputs become evidence and candidate findings.
6. Findings are verified and a report is produced.
## Preconditions
## Invariants
- The operator has written authorization and has identified the target and allowed activity.
- Required tools and model or connected-agent configuration are available.
- The operator can review high-impact actions and retain evidence securely.
- Out-of-scope public network access is denied.
- Dangerous operations follow approval policy.
- A finding must retain evidence/provenance.
## Trigger
**Implementation coverage:** `src/mission/`, `src/admiral/`, `src/operators/`, `src/orchestration/`, `src/target/`, `src/arsenal/`, `src/evidence/`, `src/analysis/`, and report/disclosure scripts.
The operator starts a mission with a target definition and rules of engagement through a supported entry surface.
## Main Success Scenario
1. The operator supplies the target, allowed scope, objectives, and execution constraints.
2. The system normalizes and validates the target and creates an authorized mission context.
3. The Admiral produces a task plan and assigns work to operator roles.
4. Each operator proposes tool activity against the authorized mission context.
5. The runtime validates scope, arguments, approval class, and timeout before dispatch.
6. Approved arsenal adapters execute and return structured observations.
7. The system records raw evidence separately from candidate findings.
8. Candidate findings are adjudicated or independently verified against retained evidence.
9. The reporting path emits a result that identifies evidence and verification state.
10. The operator reviews the result and controls any disclosure or external delivery.
## Alternate Flows
### A1 — Planning without a cloud API key
At step 3, the operator selects a connected local coding agent or local OpenAI-compatible provider. The shared mission and safety behavior remains unchanged; UC-002 supplies the provider flow.
### A2 — Read-only or non-dangerous operation
At step 5, the requested tool is classified as non-dangerous. The system may dispatch without an interactive approval while still enforcing target scope and argument validation.
### A3 — Candidate finding is refuted
At step 8, verification cannot reproduce or substantiate the candidate. The system retains the evidence and refutation outcome but does not promote the candidate to a verified finding.
## Exception Flows
### E1 — Target is outside scope
1. Scope validation rejects the target or derived destination.
2. No network tool is dispatched and no target credential is attached.
3. The system records a refusal suitable for operator diagnosis.
### E2 — Dangerous action is not approved
1. The runtime presents the action and relevant risk information for approval.
2. The operator rejects or does not approve the action.
3. Execution stops at the gate; the mission may continue with safer alternatives.
### E3 — Tool, provider, or task times out
1. The configured timeout terminates or abandons the bounded operation.
2. The system records failure context without converting it into a successful observation.
3. The planner may retry only through declared fallback behavior.
## Postconditions
### Success
- Mission state records the completed activity and disposition.
- Reported findings retain a path to evidence and verification state.
- No tool execution or credential forwarding occurred outside authorized scope.
### Failure
- The system fails closed for authorization, scope, approval, and credential-routing failures.
- Partial observations remain distinguishable from verified findings.
## Special Requirements
- **Safety:** Out-of-scope public network access is denied by deterministic controls, not model judgment alone.
- **Authorization:** Real operations require an explicit authorized target context.
- **Secret isolation:** Target headers are sent only to their configured exact origin.
- **Evidence:** Finding claims identify retained evidence or a reproducible receipt.
- **Testability:** CI exercises deterministic negative paths without live targets or paid models.
## Acceptance Criteria
- [ ] Given an authorized target, when a mission starts, then every dispatched network action carries the validated target context.
- [ ] Given an unrelated public host, when a tool attempts access, then the action is rejected before dispatch.
- [ ] Given a dangerous action, when approval is absent or rejected, then no corresponding tool process starts.
- [ ] Given target-specific credentials, when a redirect or different origin is requested, then credentials are not forwarded.
- [ ] Given a candidate finding, when it is reported as verified, then evidence and verification state are present.
- [ ] Given a tool or reasoning timeout, when the deadline expires, then the mission records an explicit failure or declared fallback rather than a false success.
## Design and Test Traceability
| Concern | Design / implementation | Verification |
| --- | --- | --- |
| Mission lifecycle | `src/mission/`, `src/admiral/`, `src/orchestration/`, `src/operators/` | Mission, adjudication, agent-feedback, and parallel-agent tests |
| Scope and authorization | `src/target/`, `src/opsec/`, `src/arsenal/approval.ts` | Scope-gate, approval-gate, validation, and target-header tests |
| Evidence and findings | `src/evidence/`, `src/analysis/`, verification scripts | Evidence-integrity, report-redaction, and finding-verifier tests |
## Open Issues
- Quantified workload and concurrent mission baselines remain a planned measurement item (NFR-11).
- Reliable swarm advantage over solo baselines is not an acceptance assumption for this use case.
## References
- @.aiwg/requirements/nfr-register.md — Safety, authorization, provenance, secret-isolation, and testability requirements.
- @.aiwg/architecture/software-architecture-doc.md — Components and trust boundaries satisfying this flow.
- @src/mission/index.ts — Mission state and lifecycle implementation.
- @src/target/index.ts — Authorized-target representation and validation boundary.
- @src/arsenal/approval.ts — Dangerous-tool approval policy.
- @src/__tests__/arsenal-scope-gate.test.ts — Negative scope-containment evidence.
- @src/__tests__/arsenal-approval-gate.test.ts — Approval enforcement evidence.
- @src/__tests__/target-headers-static.test.ts — Exact-origin credential-routing evidence.
+75 -8
View File
@@ -1,13 +1,80 @@
# UC-002 — Connect a Model or Coding Agent
**Primary actor:** Operator or integrator
**Goal:** Use a hosted provider, local OpenAI-compatible model, or connected coding-agent CLI as the reasoning backbone.
## Metadata
## Main Flow
- **ID:** UC-002
- **Status:** Baselined (brownfield)
- **Level:** User goal
- **Scope:** Configuration, provider/model registry, LLM adapters, and connected local agents
- **Primary actor:** Operator or integrator
- **Goal:** Use a hosted provider, local OpenAI-compatible model, or authenticated coding-agent CLI as the reasoning backbone.
- **Related story:** US-03
- **Quality drivers:** NFR-05, NFR-06, NFR-07, NFR-08, NFR-11
1. User selects/configures a provider or local agent.
2. System resolves provider/model capabilities and credentials.
3. Requests are routed with timeout and fallback behavior.
4. Tool-capable orchestration consumes responses and records outcomes.
## Preconditions
**Implementation coverage:** `src/llm/`, `src/config/`, `src/agent/`, provider-model registry, setup and fallback tests.
- At least one supported provider, local inference endpoint, or local agent executable is available.
- Any required credential is supplied through the supported configuration mechanism.
- UC-001 remains authoritative for tool execution and target safety.
## Trigger
The user selects a provider/model or connected local agent during setup or mission execution.
## Main Success Scenario
1. The user selects a provider family and model or a connected agent.
2. Configuration resolves the provider, base URL, credential source, and capability metadata.
3. The adapter validates required settings without exposing secret values.
4. The orchestration layer submits a bounded reasoning request through the shared interface.
5. The adapter translates the request and returns normalized content and tool proposals.
6. The runtime treats the response as untrusted input and applies shared tool, target, and evidence controls.
7. The mission records the selected reasoning path and its outcome.
## Alternate Flows
- **A1 — Connected local agent:** Resolve the executable and working environment; no new cloud API key is required.
- **A2 — Local OpenAI-compatible endpoint:** Route to the configured base URL while applying local-address handling and timeouts.
- **A3 — Declared fallback:** If the primary path fails in a configured, recoverable manner, use the declared fallback and record both outcomes.
## Exception Flows
- Missing credentials or executable: fail configuration validation with a redacted, actionable error.
- Unsupported provider/model combination: reject before a mission request is submitted.
- Timeout or malformed response: record failure and do not reinterpret incomplete output as a valid tool instruction.
- Provider attempts a privileged action: route the proposal through the same approval and scope gates as every other provider.
## Postconditions
- The reasoning path and result are explicit in mission state or diagnostics.
- Credentials remain isolated to configuration/provider boundaries.
- Provider choice does not bypass deterministic execution controls.
## Acceptance Criteria
- [ ] A connected local agent can perform mission planning without a newly supplied cloud API key.
- [ ] Provider selection resolves only supported provider/model combinations.
- [ ] Local and hosted base URLs route to their intended adapter without credential crossover.
- [ ] Timeouts produce an explicit error or declared fallback outcome.
- [ ] Model-generated tool proposals still require UC-001 scope and approval enforcement.
- [ ] Configuration and error output redact provider secrets.
## Design and Test Traceability
| Concern | Design / implementation | Verification |
| --- | --- | --- |
| Provider/model selection | `src/config/`, `src/config/provider-models.ts` | Provider-model and provider-specific tests |
| Common reasoning interface | `src/llm/index.ts`, `src/agent/` | Local-agent selection, path, tool-calling, and fallback tests |
| Bounded execution | Orchestration and configuration timeout controls | Model-fallback and agent-error tests |
## References
- @.aiwg/architecture/adr-002.md — Provider-neutral reasoning decision.
- @.aiwg/architecture/software-architecture-doc.md — Provider adapter and trust-boundary design.
- @src/config/index.ts — Runtime configuration behavior.
- @src/config/provider-models.ts — Provider/model capability registry.
- @src/llm/index.ts — Shared hosted/local LLM interface.
- @src/agent/local-agents.ts — Connected local-agent resolution.
- @src/__tests__/local-agent-selection.test.ts — Local-agent selection evidence.
- @src/__tests__/provider-models.test.ts — Registry and compatibility evidence.
- @scripts/test-model-fallback.mjs — Declared fallback verification.
+74 -8
View File
@@ -1,13 +1,79 @@
# UC-003 — Operate Through Supported Surfaces
**Primary actor:** Operator or integrating client
**Goal:** Start and inspect capabilities through CLI, War Room/HTTP, library, or MCP.
## Metadata
## Main Flow
- **ID:** UC-003
- **Status:** Baselined (brownfield)
- **Level:** User goal
- **Scope:** CLI, library, localhost HTTP/War Room, and MCP adapters
- **Primary actor:** Operator or integrating client
- **Goal:** Start and inspect supported capabilities through an appropriate surface while preserving shared domain behavior.
- **Related stories:** US-02, US-06
- **Quality drivers:** NFR-04, NFR-06, NFR-07, NFR-08
1. User selects an entry surface.
2. Surface validates and translates input into shared domain operations.
3. Shared mission, target, arsenal, and reporting services execute.
4. Results return in surface-appropriate form.
## Preconditions
**Implementation coverage:** `src/cli.ts`, `src/server.ts`, `src/index.ts`, `src/mcp-server.ts`, `src/ui/`.
- The selected surface is installed and configured.
- The operation is supported by that surface; MCP is intentionally narrower than the full application.
- Any real target activity satisfies UC-001 preconditions.
## Trigger
The actor invokes a CLI command, library export, localhost HTTP route, browser action, or MCP tool.
## Main Success Scenario
1. The selected adapter parses and validates surface-specific input.
2. It translates the request into a shared domain operation.
3. Shared mission, target, provider, arsenal, and reporting services execute the request.
4. The adapter translates the result into the documented surface contract.
5. The actor receives structured state, output, or an actionable error.
## Alternate Flows
- **CLI/library:** Execute in the current Node.js process with terminal or typed return values.
- **War Room/HTTP:** Bind to loopback by default and serve browser/API responses after Host and origin validation.
- **MCP:** Expose only declared MCP tools over stdio and reuse common validation for supported reconnaissance.
## Exception Flows
- Invalid schema or arguments: reject at the adapter boundary before domain execution.
- Invalid Host/origin: reject the HTTP request before a sensitive route is reached.
- Unsupported MCP capability: return a documented MCP error rather than silently invoking a broader internal API.
- Domain failure: preserve the underlying failure semantics and do not convert it to a surface-specific success.
## Postconditions
- Equivalent supported operations preserve shared safety and domain invariants across surfaces.
- The result conforms to the chosen surface’s documented schema.
- Surface-specific exposure does not broaden privileges.
## Acceptance Criteria
- [ ] CLI and library operations reach shared domain modules rather than duplicate mission logic.
- [ ] The HTTP server defaults to loopback and rejects invalid Host/origin combinations.
- [ ] MCP input is schema-validated and returns structured output for supported tools.
- [ ] Unsupported operations fail explicitly on the selected surface.
- [ ] Contract changes are typechecked, tested, documented, and visible during release review.
## Design and Test Traceability
| Surface | Implementation | Verification |
| --- | --- | --- |
| CLI | `src/cli.ts` | Build, CLI smoke, and validation tests |
| Library | `src/index.ts` | Export and index tests |
| HTTP / War Room | `src/server.ts`, `src/ui/` | Local API hardening and proxy tests |
| MCP | `src/mcp-server.ts` | Schema/static validation and documentation review |
## References
- @.aiwg/architecture/adr-001.md — Local-first modular-monolith decision.
- @.aiwg/architecture/software-architecture-doc.md — Delivery adapter and API surface design.
- @src/cli.ts — Command-line adapter.
- @src/index.ts — Library composition surface.
- @src/server.ts — Local HTTP and War Room adapter.
- @src/mcp-server.ts — MCP stdio adapter.
- @src/__tests__/local-api-hardening-static.test.ts — HTTP boundary evidence.
- @src/__tests__/validation.test.ts — Input-validation evidence.
- @docs/API_REFERENCE.md — Human-readable HTTP contract.
- @docs/MCP_GUIDE.md — Human-readable MCP contract.
+72 -9
View File
@@ -1,15 +1,78 @@
# UC-004 — Analyze a Source Code Repository
**Primary actor:** Security researcher
**Goal:** Ingest supported source languages and identify evidence-backed vulnerability candidates.
## Metadata
## Main Flow
- **ID:** UC-004
- **Status:** Baselined; multi-language coverage remains experimental
- **Level:** User goal
- **Scope:** Repository ingest, structural extraction, white-box analysis, evidence, and finding verification
- **Primary actor:** Security researcher
- **Goal:** Ingest an authorized repository and identify evidence-backed vulnerability candidates without overstating language or analysis maturity.
- **Related story:** US-07
- **Quality drivers:** NFR-03, NFR-08, NFR-09, NFR-11
1. Researcher supplies an authorized repository.
2. Ingest identifies language and extracts structural blocks.
3. Decomposition and analysis produce candidate findings.
4. Results are graded or verified against evidence.
## Preconditions
**Implementation coverage:** `src/recon/code-ingest.ts`, `src/recon/ts-parse.ts`, `src/recon/ts-grammars.ts`, `src/recon/whitebox.ts`, `src/analysis/`, decomposition scripts.
- The researcher is authorized to analyze the repository.
- Input size and file types satisfy configured containment limits.
- Required parser grammars or safe fallback behavior are available.
**Maturity note:** Multi-language ingestion is experimental even where benchmark results are proven.
## Trigger
The researcher selects a repository or supported source input for white-box analysis.
## Main Success Scenario
1. The system enumerates eligible files under configured containment and size limits.
2. Ingest identifies the language and selects the corresponding structural parser.
3. The parser extracts bounded code blocks with source locations.
4. Analysis processes the blocks and emits candidate observations with source evidence.
5. Candidate findings are graded, refuted, or verified against the cited code.
6. Results report language/parser maturity and verification status.
## Alternate Flows
- A supported Tree-sitter grammar extracts structural blocks for the detected language.
- The Python-specific path uses its specialized parser where configured.
- A safe documented fallback may produce reduced-fidelity blocks while marking the limitation.
## Exception Flows
- Unsupported input: fail safely with an explicit unsupported-language result.
- Oversized, recursive, binary, or escaping input: containment limits reject or bound processing.
- Parser failure: record the error and do not fabricate structural evidence.
- Unverified candidate: retain as a candidate or refuted result, never silently promote to verified.
## Postconditions
- Each reported code observation can identify its source file and region.
- Parser limitations and experimental maturity remain visible.
- Repository content never grants authority to override analysis or safety instructions.
## Acceptance Criteria
- [ ] Supported grammars extract source blocks with stable file and line context.
- [ ] Unsupported or malformed input fails explicitly and safely.
- [ ] Ingest limits prevent unbounded traversal or oversized processing.
- [ ] Findings preserve source evidence and verification state.
- [ ] Documentation does not generalize benchmark success beyond the evaluated corpus/language path.
## Design and Test Traceability
| Concern | Implementation | Verification |
| --- | --- | --- |
| Input containment | `src/recon/code-ingest.ts`, `src/recon/whitebox.ts` | Ingest-limit and white-box-containment tests |
| Structural parsing | `src/recon/ts-parse.ts`, grammar registry | Parser, grammar, fallback, and adversarial tests |
| Evidence-backed output | `src/analysis/`, finding verification scripts | Verification and report-redaction tests |
## References
- @.aiwg/architecture/software-architecture-doc.md — Reconnaissance and source-ingest component design.
- @.aiwg/architecture/vision-alignment.md — Maturity boundary for source analysis claims.
- @src/recon/code-ingest.ts — Repository ingest and limits.
- @src/recon/ts-parse.ts — Structural parser implementation.
- @src/recon/whitebox.ts — White-box analysis composition.
- @src/__tests__/ingest-limits.test.ts — Resource-containment evidence.
- @src/__tests__/ts-parse-adversarial.test.ts — Adversarial parser evidence.
- @src/__tests__/whitebox-containment.test.ts — Path and analysis containment evidence.
- @scripts/verify-finding.mjs — Finding-verification path.
+76 -8
View File
@@ -1,13 +1,81 @@
# UC-005 — Reproduce Claims and Benchmark Results
**Primary actor:** Maintainer, contributor, or evaluator
**Goal:** Re-derive public capability claims from committed data and detect fitting or provenance regressions.
## Metadata
## Main Flow
- **ID:** UC-005
- **Status:** Baselined (brownfield)
- **Level:** User goal
- **Scope:** Benchmark corpora, manifests, ground truth, receipts, graders, claim verification, and CI
- **Primary actor:** Maintainer, contributor, or evaluator
- **Goal:** Re-derive public capability claims from versioned evidence and detect grading, provenance, or fitting regressions.
- **Related stories:** US-08, US-09, US-10
- **Quality drivers:** NFR-03, NFR-08, NFR-09
1. Evaluator runs claim or benchmark verification.
2. Harness reads committed corpus, receipts, and ground truth.
3. Scores and verdicts are recomputed.
4. CI fails if claims, provenance, or anti-fitting invariants do not hold.
## Preconditions
**Implementation coverage:** `bench/`, `scripts/verify-claims.mjs`, model/benchmark scripts, anti-fitting tests, `.github/workflows/ci.yml`.
- The evaluated corpus, manifest, ground truth, and required receipts are available under their documented retention policy.
- The evaluator uses the declared harness, metric, model/configuration identity, and command.
- Sensitive or third-party material is handled according to repository policy.
## Trigger
The evaluator runs claim verification, a benchmark verifier, or the corresponding CI gate.
## Main Success Scenario
1. The harness loads the versioned corpus/manifest and ground truth.
2. It validates required receipt identity and provenance fields.
3. The grader recomputes per-case outcomes from retained evidence.
4. Aggregate scores and headline verdicts are recomputed using the declared metric.
5. Anti-fitting checks verify separation and policy invariants.
6. The verifier compares derived values with public claims.
7. It emits a pass/fail result and enough context to reproduce a mismatch.
8. CI blocks integration when a required claim, provenance, or anti-fitting invariant fails.
## Alternate Flows
- A local evaluator runs only deterministic verification against committed artifacts.
- A live benchmark run produces new receipts, followed by deterministic grading in a separate step.
- Raw sensitive transcripts may be withheld while a declared, re-derivable graded receipt remains available; the documentation must state the reproduction boundary.
## Exception Flows
- Missing or stale evidence: fail the affected claim rather than substituting an estimate.
- Model/provider outage during a live run: classify as infrastructure/run failure, not model success or failure.
- Ground-truth or manifest mismatch: stop grading and identify the conflicting artifact.
- Suspected self-fitting or corpus leakage: fail the anti-fitting gate pending review.
## Postconditions
- Every passing headline claim maps to the evaluated corpus, metric, and retained evidence.
- Failed claims identify the discrepant artifact or value.
- Benchmark scope is not generalized to unsupported product maturity.
## Acceptance Criteria
- [ ] `npm run verify-claims` derives required public claims from repository artifacts.
- [ ] Seeded claim mismatches, missing provenance, or fitting violations cause a non-zero gate result.
- [ ] Receipts identify the relevant corpus/model/configuration and evaluation outcome.
- [ ] Live-run infrastructure failures remain distinct from evaluated model verdicts.
- [ ] Maturity documentation limits conclusions to the evaluated scope.
## Design and Test Traceability
| Concern | Implementation | Verification |
| --- | --- | --- |
| Claim derivation | `scripts/verify-claims.mjs`, benchmark manifests/receipts | Claim verification in CI |
| Finding grading | Verification/refutation and grading scripts | Script self-tests and benchmark tests |
| Anti-fitting | No-fitting and no-self-fitting checks | Seeded anti-fitting tests |
| Gate enforcement | `.github/workflows/ci.yml` | CI job status and local command parity |
## References
- @.aiwg/architecture/adr-004.md — Evidence-derived public-claims decision.
- @.aiwg/architecture/adr-005.md — Current-state versus research-vision decision.
- @.aiwg/architecture/vision-alignment.md — Maturity interpretation rules.
- @scripts/verify-claims.mjs — Deterministic public-claim verifier.
- @scripts/verify-finding.mjs — Finding verification.
- @scripts/refute-finding.mjs — Candidate-refutation path.
- @scripts/test-no-fitting.mjs — Anti-fitting evidence.
- @scripts/test-no-self-fitting.mjs — Self-fitting prevention evidence.
- @.github/workflows/ci.yml — Required automated gates.
+103 -14
View File
@@ -1,16 +1,105 @@
# Non-Functional Requirements Register
| ID | Requirement | Verification |
| --- | --- | --- |
| NFR-01 Safety | Networked tools must deny off-scope public hosts by default. | Scope-containment tests and smoke/gate suites |
| NFR-02 Authorization | Real operations require an explicit authorized target context. | API/mission validation tests and doctrine audit |
| NFR-03 Provenance | Public claims and findings must trace to committed or retained evidence. | `verify-claims`, finding verifier, provenance gate |
| NFR-04 Local security | HTTP server defaults to loopback and guards Host/origin. | Server tests and Docker configuration inspection |
| NFR-05 Secret isolation | Target credentials are injected only for their configured exact origin. | Target-header tests |
| NFR-06 Portability | Core build supports Node.js 18+ on common desktop/server environments. | CI plus documented install matrix |
| NFR-07 Compatibility | CLI, HTTP, library, and MCP contracts change intentionally and visibly. | Typecheck, contract tests, release review |
| NFR-08 Testability | Deterministic paths must run without live model/network dependencies in CI. | Main CI workflow |
| NFR-09 Honesty | Experimental/research/roadmap work must not be described as stable. | Vision alignment and claim audit |
| NFR-10 Recoverability | Updates preserve configured sensitive artifact paths. | Update self-tests |
| NFR-11 Performance | Timeout controls bound local-agent, task, and planning calls. | Timeout/fallback tests; future percentile baseline |
| NFR-12 Maintainability | Major trust-boundary and platform decisions require ADR updates. | Architecture review checklist |
## Metadata and Scope
- **Status:** Baselined for the current brownfield architecture
- **Owner:** Architecture and safety stewards
- **Review cadence:** Every iteration and whenever a trust boundary, delivery surface, provider contract, or maturity label changes
- **Measurement rule:** A requirement without a repeatable verification method is aspirational and cannot pass a phase gate.
## Requirement Register
| ID | Category | Measurable requirement | Verification and pass condition | Design source | Status |
| --- | --- | --- | --- | --- | --- |
| NFR-01 | Safety | Built-in network-capable tools must deny unrelated public hosts by default after a mission target is established. | Scope-gate negative tests pass for unrelated public destinations; no adapter bypass is accepted. | ADR-003; SAD §§5, 10 | Active |
| NFR-02 | Authorization | Real target operations require an explicit authorized target context before dispatch. | Mission/API validation and arsenal approval suites reject absent authorization context. | UC-001; ADR-003 | Active |
| NFR-03 | Provenance | Public claims and verified findings must trace to retained evidence or a reproducible versioned receipt. | Claim/finding verifiers and provenance CI gate pass; unsupported claims fail closed. | UC-005; ADR-004 | Active |
| NFR-04 | Local security | HTTP binds to loopback by default and rejects invalid Host/origin combinations. | Server static/behavior tests and Docker binding inspection pass. | UC-003; ADR-001 | Active |
| NFR-05 | Secret isolation | Target credentials and headers may be forwarded only to their configured exact origin and must be redacted from diagnostics. | Target-header and credential-redaction negative tests pass. | UC-001; ADR-003 | Active |
| NFR-06 | Portability | The core build supports Node.js 18+ and the repository’s declared desktop/server environments. | CI install, build, typecheck, and documented platform smoke checks pass. | ADR-001; ADR-002 | Active |
| NFR-07 | Compatibility | CLI, HTTP, library, MCP, provider, and evidence contracts change only with visible documentation, type, and test updates. | Contract/type tests pass and release review identifies breaking changes. | UC-002; UC-003 | Active |
| NFR-08 | Testability | Deterministic safety, parser, provider-routing, evidence, and claim paths run in CI without live targets or paid model dependencies. | Required CI jobs execute from fixtures/committed artifacts and pass. | Test strategy | Active |
| NFR-09 | Claim honesty | Experimental, research, and roadmap capabilities must not be represented as stable; benchmark claims remain corpus-scoped. | Documentation/maturity audit and claim verifier report no contradictory status. | UC-005; ADR-005 | Active; automation gap tracked |
| NFR-10 | Recoverability | Update workflows preserve configured sensitive or expensive local artifact paths and provide a clear failure result. | Update self-tests verify protected-path survival and rollback/failure behavior. | Risk R-07 | Active |
| NFR-11 | Performance | Every local-agent, planning, task, and external-tool operation has a configured finite timeout; percentile workload baselines must be recorded before performance promotion claims. | Timeout/fallback tests pass; benchmark receipt states workload, environment, and percentile when a performance claim is made. | UC-001; UC-002; UC-004 | Partially measured |
| NFR-12 | Maintainability | Any new delivery surface, persistence system, privilege boundary, provider contract, generic execution path, or maturity promotion requires an ADR and traceability update. | Architecture review checklist finds an accepted/proposed ADR and updated UC/US/NFR matrices. | SAD §10; ADR-005 | Active |
## Quality-Attribute Detail
### 1. Usability and Accessibility
- CLI, HTTP, and MCP errors must identify invalid input or unsupported behavior without exposing secrets.
- The browser surface should retain keyboard-accessible core controls; a formal WCAG conformance level is not yet claimed.
- Documentation distinguishes operator, developer, API, and MCP entry paths.
### 2. Reliability and Recoverability
- Authorization, scope, approval, origin, and evidence-verification failures fail closed.
- Timeouts bound external reasoning/tool work; retry is permitted only where a declared fallback avoids duplicate unsafe effects.
- Local reports/evidence require an operator-owned backup and retention policy; the project does not claim centralized durability.
### 3. Performance and Scale
- The current product is local/self-hosted; no hosted fleet SLO or concurrent-user capacity is claimed.
- Any future latency/throughput statement must name workload, hardware/runtime, sample count, percentile, and receipt.
- Source-ingest and concurrent mission baselines remain an explicit construction item.
### 4. Supportability and Observability
- Build, doctor, preflight, smoke, test, claim, and provenance gates provide local diagnostic layers.
- Mission/tool failures must retain enough redacted context to distinguish validation, provider, timeout, process, parse, and verification failures.
- Centralized metrics, traces, paging, and production SLO dashboards are N/A for the current self-hosted baseline; hosted evolution requires a new baseline.
### 5. Security and Privacy
- Model output, target content, imported code, external tools, and browser requests are untrusted inputs.
- Secrets must use supported configuration/environment mechanisms, never committed values.
- Evidence and disclosures may be restricted or embargoed and remain operator-controlled.
- T3MP3ST provides product controls and usage guidance; it does not claim organizational certification or legal authorization on the operator’s behalf.
### 6. Compliance and Legal Constraints
- Authorized use and coordinated disclosure are mandatory operating constraints.
- AGPL-3.0-or-later governs distribution of this repository.
- GDPR, CCPA, PCI DSS, HIPAA, CFAA, and local law applicability depends on deployment and engagement context; repository mention is not certification.
### 7. Environmental and Design Constraints
- Runtime: Node.js 18+ with TypeScript/ESM.
- Default architecture: local-first modular monolith with filesystem artifacts and no application database.
- Default HTTP exposure: loopback.
- Hosted multi-tenancy, distributed workers, or centralized retained customer data require new architecture, threat, retention, and compliance decisions.
### 8. Documentation and Localization
- Stable/experimental/research/roadmap labels must remain consistent across product and SDLC documentation.
- Interface changes update human-facing API/MCP/operator documentation in the same change.
- English is the current maintained documentation language; no localization commitment is claimed.
## Assumptions, Dependencies, and Open Issues
- Operators control host security, authorization records, evidence retention, and disclosure decisions.
- External model/tool availability and behavior are not controlled by T3MP3ST.
- Open measurements: source-ingest percentiles, concurrent mission resource profiles, and startup/shutdown timing.
- Open governance: machine-checkable maturity-label consistency and complete network-adapter safety inventory.
## Traceability Summary
| Requirement group | Use cases | Architecture decisions | Primary test evidence |
| --- | --- | --- | --- |
| Safety / authorization / secrets | UC-001 | ADR-003 | Arsenal scope/approval, target-header, redaction tests |
| Provider / portability / compatibility | UC-002, UC-003 | ADR-001, ADR-002 | Provider registry, local-agent, API hardening, typecheck |
| Evidence / honesty | UC-004, UC-005 | ADR-004, ADR-005 | Finding verification, claim, provenance, anti-fitting gates |
| Maintainability / recoverability | All | ADR-001, ADR-005 | Update self-tests, architecture and release review |
## References
- @.aiwg/requirements/UC-001.md — Scoped mission behavior.
- @.aiwg/requirements/UC-002.md — Provider and local-agent behavior.
- @.aiwg/requirements/UC-003.md — Delivery-surface behavior.
- @.aiwg/requirements/UC-004.md — Source-analysis behavior.
- @.aiwg/requirements/UC-005.md — Claim and benchmark reproducibility.
- @.aiwg/architecture/software-architecture-doc.md — Architectural tactics and traceability matrices.
- @.aiwg/testing/test-strategy.md — Verification layers and quality gates.
- @SECURITY.md — Product safety, vulnerability reporting, and authorized-use policy.
- @.github/workflows/ci.yml — Automated verification implementation.
+139 -13
View File
@@ -1,14 +1,140 @@
# User Stories
# User Story Register
| ID | Story | Acceptance signal |
| --- | --- | --- |
| US-01 | As an operator, I can define an authorized target and scope before execution. | Scope receipt exists; invalid/off-scope target is refused. |
| US-02 | As an operator, I can launch and monitor a mission from the CLI or War Room. | Shared mission state is visible through both surfaces. |
| US-03 | As an operator, I can connect an already-authenticated local coding agent. | Mission planning works without a new cloud API key. |
| US-04 | As an operator, I can approve or reject dangerous actions. | Approval decision is enforced before execution. |
| US-05 | As a researcher, I can preserve evidence behind each finding. | Finding links to tool/model evidence and verification state. |
| US-06 | As an integrator, I can access supported reconnaissance through MCP. | MCP schema validates and returns structured output. |
| US-07 | As a researcher, I can ingest supported source languages. | Supported grammar extracts blocks; unsupported input fails safely. |
| US-08 | As a maintainer, I can reproduce headline claims. | `npm run verify-claims` succeeds from committed artifacts. |
| US-09 | As a contributor, I can see whether a feature is stable, experimental, research, or roadmap. | Maturity classification is explicit in docs/alignment matrix. |
| US-10 | As a maintainer, I can detect prompt, provenance, and fitting regressions in CI. | Corresponding CI gates fail on seeded violations. |
## Register Metadata
- **Status:** Baselined brownfield stories
- **Owner:** Product/requirements steward
- **Definition of ready:** Actor, value, scope, linked UC/NFR, testable acceptance criteria, and implementation evidence are present.
- **Definition of done:** Acceptance evidence passes; documentation and traceability are updated; no critical safety or security finding remains.
## Summary
| ID | Priority | Parent use case | Status | Story |
| --- | --- | --- | --- | --- |
| US-01 | Critical | UC-001 | Implemented | Define an authorized target and scope before execution. |
| US-02 | High | UC-001, UC-003 | Implemented | Launch and monitor a mission from supported surfaces. |
| US-03 | High | UC-002 | Implemented | Connect an authenticated local coding agent. |
| US-04 | Critical | UC-001 | Implemented | Approve or reject dangerous actions. |
| US-05 | Critical | UC-001 | Implemented | Preserve evidence behind each finding. |
| US-06 | High | UC-003 | Implemented (narrow surface) | Access supported reconnaissance through MCP. |
| US-07 | High | UC-004 | Experimental | Ingest supported source languages safely. |
| US-08 | Critical | UC-005 | Implemented | Reproduce headline claims. |
| US-09 | High | UC-005 | Implemented; continuous review | See capability maturity clearly. |
| US-10 | Critical | UC-005 | Implemented | Detect prompt, provenance, and fitting regressions in CI. |
## Story Cards
### US-01 — Define Authorized Scope
**As an** authorized operator, **I want** to define a target and allowed scope before execution **so that** real operations remain within written authorization.
- **Value:** Prevents off-target activity and creates the context required by every safety gate.
- **Scope:** Target normalization, rules of engagement, scope receipt, and pre-dispatch validation; excludes obtaining legal authorization.
- **NFRs:** NFR-01, NFR-02, NFR-05
- **Acceptance:** Given a valid target, a mission context/receipt is created; given an unrelated public host, execution is refused before dispatch; target credentials never cross origins.
- **Evidence:** Target, scope-gate, and target-header implementation/tests.
### US-02 — Launch and Monitor a Mission
**As an** operator, **I want** to launch and inspect mission state from the CLI or War Room **so that** I can control long-running work through the surface that fits my workflow.
- **Value:** Makes shared mission behavior observable without creating separate execution engines.
- **Scope:** Mission create/start/state/results through supported surfaces; excludes distributed fleet scheduling.
- **NFRs:** NFR-04, NFR-07, NFR-11
- **Acceptance:** Both surfaces reach shared mission state; invalid surface input fails before execution; timeout/failure state is visible and not reported as success.
- **Evidence:** CLI, server, mission, and local-API hardening code/tests.
### US-03 — Connect a Local Coding Agent
**As an** operator, **I want** to use an already-authenticated local coding agent **so that** mission planning can work without a new cloud API key.
- **Value:** Preserves local/keyless operation and provider choice.
- **Scope:** Discovery, selection, path resolution, request/response normalization, tool proposal handling; excludes bypassing tool controls.
- **NFRs:** NFR-05, NFR-06, NFR-08, NFR-11
- **Acceptance:** A supported local agent is resolved and selected; missing executables fail explicitly; tool proposals pass through shared scope/approval controls; credentials are not invented or exposed.
- **Evidence:** Local-agent module plus selection, path-resolution, home, tool-calling, and fallback tests.
### US-04 — Control Dangerous Actions
**As an** operator, **I want** to approve or reject dangerous actions **so that** high-impact execution reflects explicit human intent.
- **Value:** Creates a deterministic human-control boundary below model reasoning.
- **Scope:** Risk classification, approval prompt/decision, and dispatch gate; excludes making an unsafe action safe merely by approval.
- **NFRs:** NFR-01, NFR-02
- **Acceptance:** No dangerous action dispatches without approval; rejection is final for that request; approval does not bypass target scope or validation.
- **Evidence:** Arsenal approval implementation and approval-gate tests.
### US-05 — Preserve Finding Evidence
**As a** researcher, **I want** every finding to retain its evidence and verification state **so that** reports are defensible and candidates are not mistaken for verified vulnerabilities.
- **Value:** Reduces false positives and supports coordinated disclosure.
- **Scope:** Evidence capture, integrity, redaction, candidate/verified/refuted state, and report linkage.
- **NFRs:** NFR-03, NFR-05
- **Acceptance:** Verified findings link to retained evidence; redaction removes sensitive values from report paths; failed verification remains candidate/refuted.
- **Evidence:** Evidence vault/gate, analysis report, verifier/refuter, integrity and redaction tests.
### US-06 — Use Supported MCP Reconnaissance
**As an** integrator, **I want** supported reconnaissance exposed through MCP **so that** an MCP client can invoke a narrow structured capability.
- **Value:** Enables agent/tool interoperability without exposing the full internal runtime.
- **Scope:** Declared MCP tools, input schema, stdio transport, structured response; excludes undocumented mission/arsenal access.
- **NFRs:** NFR-07, NFR-08
- **Acceptance:** Valid input returns the documented structure; invalid input returns an MCP error; unsupported capabilities are not silently routed to broader APIs.
- **Evidence:** MCP server and MCP guide, validated by type/build and interface review.
### US-07 — Ingest Supported Source Languages
**As a** security researcher, **I want** supported source languages converted into bounded structural blocks **so that** white-box analysis can cite the relevant code.
- **Value:** Extends evidence-backed analysis beyond a single source language while preserving honest maturity claims.
- **Scope:** Language detection, grammar selection, bounded parsing, safe fallback, source locations; excludes universal correctness claims.
- **NFRs:** NFR-08, NFR-09, NFR-11
- **Acceptance:** Supported grammars produce located blocks; unsupported/malformed/oversized inputs fail safely; experimental maturity remains explicit.
- **Evidence:** Ingest/parser/white-box modules and grammar, adversarial, fallback, multilang, and containment tests.
### US-08 — Reproduce Headline Claims
**As a** maintainer, **I want** headline claims recomputed from versioned evidence **so that** releases do not publish stale or fabricated performance results.
- **Value:** Makes public claims auditable and regression-sensitive.
- **Scope:** Declared committed claims and receipts; excludes results whose licensed/sensitive raw source cannot be retained unless the reproduction boundary is disclosed.
- **NFRs:** NFR-03, NFR-09
- **Acceptance:** `npm run verify-claims` succeeds for consistent evidence and fails on seeded mismatch or missing required provenance.
- **Evidence:** Claim verifier, benchmark artifacts, and CI claim/provenance gates.
### US-09 — See Capability Maturity
**As a** contributor or user, **I want** each capability labeled stable, experimental, research, or roadmap **so that** I can distinguish implemented guarantees from direction.
- **Value:** Prevents architecture and product decisions from relying on aspirational claims.
- **Scope:** README/features/SAD/vision alignment and promotion criteria.
- **NFRs:** NFR-09, NFR-12
- **Acceptance:** Status is explicit and consistent in authoritative docs; promotion includes safety tests, operational path, documentation, and reproducible evidence.
- **Evidence:** Vision-alignment matrix, ADR-005, claim audit, and planned consistency automation.
### US-10 — Detect Integrity Regressions in CI
**As a** maintainer, **I want** prompt, provenance, claim, and fitting regressions to fail CI **so that** unsafe or misleading changes cannot merge silently.
- **Value:** Converts research/evidence policy into repeatable release gates.
- **Scope:** Deterministic audit jobs and seeded negative tests; excludes paid/live benchmark availability.
- **NFRs:** NFR-03, NFR-08, NFR-09
- **Acceptance:** Seeded prompt/provenance/fitting violations fail the corresponding command and required CI job; infrastructure failures remain distinct from evaluated model results.
- **Evidence:** CI workflow, anti-fitting tests, provenance gate, prompt audit, and claim verifier.
## INVEST and Readiness Assessment
The stories are independently reviewable but share cross-cutting safety constraints; each delivers operator/maintainer value, has bounded scope, and contains pass/fail acceptance signals. Story-point estimates and sprint assignment are intentionally absent because the stories describe a brownfield baseline, not a newly estimated backlog. Future change slices derived from them must be sized in the iteration plan.
## References
- @.aiwg/requirements/UC-001.md — Parent flow for US-01, US-02, US-04, and US-05.
- @.aiwg/requirements/UC-002.md — Parent flow for US-03.
- @.aiwg/requirements/UC-003.md — Parent flow for US-02 and US-06.
- @.aiwg/requirements/UC-004.md — Parent flow for US-07.
- @.aiwg/requirements/UC-005.md — Parent flow for US-08 through US-10.
- @.aiwg/requirements/nfr-register.md — Cross-cutting quality constraints.
- @.aiwg/architecture/software-architecture-doc.md — Implementing components and interfaces.
- @.aiwg/testing/test-strategy.md — Acceptance and regression strategy.