@manhd_d/ai-harness 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/CONTRIBUTING.md +4 -0
  3. package/README.md +19 -57
  4. package/adapters/java-spring/adapter.yaml +3 -2
  5. package/adapters/java-spring/checks/verification.yaml +12 -0
  6. package/adapters/java-spring/evals/cases.json +10 -0
  7. package/adapters/java-spring/rules/conventions.md +39 -0
  8. package/adapters/java-spring/rules.md +2 -1
  9. package/adapters/kubernetes/adapter.yaml +1 -1
  10. package/adapters/kubernetes/rules.md +3 -0
  11. package/adapters/react-native/adapter.yaml +6 -3
  12. package/adapters/react-native/checks/verification.yaml +36 -0
  13. package/adapters/react-native/evals/cases.json +30 -0
  14. package/adapters/react-native/rules/conventions.md +34 -0
  15. package/adapters/react-native/rules.md +5 -1
  16. package/adapters/react-native/skills/harness-react-native-behavior-testing/SKILL.md +48 -0
  17. package/adapters/react-native/skills/harness-react-native-screen-delivery/SKILL.md +53 -0
  18. package/adapters/react-nextjs/adapter.yaml +6 -3
  19. package/adapters/react-nextjs/checks/verification.yaml +36 -0
  20. package/adapters/react-nextjs/evals/cases.json +30 -0
  21. package/adapters/react-nextjs/rules/conventions.md +37 -0
  22. package/adapters/react-nextjs/rules.md +5 -1
  23. package/adapters/react-nextjs/skills/harness-react-nextjs-behavior-testing/SKILL.md +48 -0
  24. package/adapters/react-nextjs/skills/harness-react-nextjs-feature-delivery/SKILL.md +55 -0
  25. package/capabilities/architecture/README.md +11 -0
  26. package/capabilities/architecture/agents/architecture-reviewer.md +16 -0
  27. package/capabilities/architecture/agents/solution-architect.md +16 -0
  28. package/capabilities/architecture/capability.json +35 -0
  29. package/capabilities/architecture/checks/verification.json +29 -0
  30. package/capabilities/architecture/evals/cases.json +35 -0
  31. package/capabilities/architecture/skills/harness-architecture-change-impact/SKILL.md +43 -0
  32. package/capabilities/architecture/skills/harness-architecture-decision-records/SKILL.md +43 -0
  33. package/capabilities/architecture/skills/harness-architecture-project-context/SKILL.md +43 -0
  34. package/capabilities/architecture/skills/harness-architecture-quality-attributes/SKILL.md +43 -0
  35. package/capabilities/architecture/skills/harness-architecture-review/SKILL.md +43 -0
  36. package/capabilities/architecture/skills/harness-architecture-solution-design/SKILL.md +44 -0
  37. package/capabilities/architecture/templates/adr.md +29 -0
  38. package/capabilities/architecture/templates/nfr.md +22 -0
  39. package/capabilities/architecture/templates/overview.md +24 -0
  40. package/capabilities/architecture/templates/project-map.md +26 -0
  41. package/capabilities/architecture/templates/review.md +23 -0
  42. package/capabilities/architecture/templates/solution-design.md +29 -0
  43. package/capabilities/architecture/workflows/change-review.md +12 -0
  44. package/capabilities/architecture/workflows/discovery-to-design.md +16 -0
  45. package/capabilities/delivery/README.md +11 -0
  46. package/capabilities/delivery/agents/project-manager.md +16 -0
  47. package/capabilities/delivery/capability.json +29 -0
  48. package/capabilities/delivery/checks/verification.json +29 -0
  49. package/capabilities/delivery/evals/cases.json +25 -0
  50. package/capabilities/delivery/skills/harness-delivery-planning/SKILL.md +43 -0
  51. package/capabilities/delivery/skills/harness-delivery-risk-management/SKILL.md +42 -0
  52. package/capabilities/delivery/skills/harness-delivery-scope-change/SKILL.md +43 -0
  53. package/capabilities/delivery/templates/change-assessment.md +23 -0
  54. package/capabilities/delivery/templates/delivery-plan.md +25 -0
  55. package/capabilities/delivery/templates/risk-register.md +19 -0
  56. package/capabilities/delivery/workflows/execution-change.md +9 -0
  57. package/capabilities/delivery/workflows/planning.md +12 -0
  58. package/capabilities/product/README.md +7 -0
  59. package/capabilities/product/agents/business-analyst.md +3 -0
  60. package/capabilities/product/agents/product-owner.md +5 -1
  61. package/capabilities/product/agents/project-manager.md +5 -0
  62. package/capabilities/product/capability.json +9 -4
  63. package/capabilities/product/checks/verification.json +12 -0
  64. package/capabilities/product/evals/cases.json +10 -0
  65. package/capabilities/product/skills/harness-product-acceptance-criteria/SKILL.md +17 -0
  66. package/capabilities/product/skills/harness-product-backlog-prioritization/SKILL.md +17 -0
  67. package/capabilities/product/skills/harness-product-brd-generation/SKILL.md +17 -0
  68. package/capabilities/product/skills/harness-product-business-analysis/SKILL.md +17 -0
  69. package/capabilities/product/skills/harness-product-document-review/SKILL.md +17 -0
  70. package/capabilities/product/skills/harness-product-idea-discovery/SKILL.md +17 -0
  71. package/capabilities/product/skills/harness-product-knowledge-analysis/SKILL.md +17 -0
  72. package/capabilities/product/skills/harness-product-mvp-definition/SKILL.md +43 -0
  73. package/capabilities/product/skills/harness-product-prd-generation/SKILL.md +17 -0
  74. package/capabilities/product/skills/harness-product-product-outcomes/SKILL.md +42 -0
  75. package/capabilities/product/skills/harness-product-product-research/SKILL.md +17 -0
  76. package/capabilities/product/skills/harness-product-srs-generation/SKILL.md +17 -0
  77. package/capabilities/product/skills/harness-product-traceability/SKILL.md +17 -0
  78. package/capabilities/product/skills/harness-product-use-case-generation/SKILL.md +17 -0
  79. package/capabilities/product/skills/harness-product-user-stories/SKILL.md +17 -0
  80. package/capabilities/product/templates/mvp.md +25 -0
  81. package/capabilities/product/templates/outcomes.md +23 -0
  82. package/capabilities/product/workflows/document-driven.md +4 -0
  83. package/capabilities/product/workflows/idea-driven.md +4 -0
  84. package/capabilities/product/workflows/product-to-solution.md +15 -0
  85. package/cli/agents.js +165 -0
  86. package/cli/environment.js +14 -1
  87. package/cli/harness.js +24 -9
  88. package/cli/main.js +19 -6
  89. package/config/agents.default.json +80 -0
  90. package/core/agents/documentation.md +13 -0
  91. package/core/agents/implementer.md +7 -0
  92. package/core/agents/orchestrator.md +13 -0
  93. package/core/agents/planner.md +4 -0
  94. package/core/agents/reviewer.md +8 -0
  95. package/core/checks/verification.json +37 -0
  96. package/core/evals/cases.json +70 -0
  97. package/core/evals/composition.json +15 -0
  98. package/core/rules/foundations.md +1 -0
  99. package/core/rules/project-conventions.md +61 -0
  100. package/core/workflows/agent-routing.md +28 -0
  101. package/core/workflows/bugfix.md +2 -0
  102. package/core/workflows/project-setup.md +9 -1
  103. package/core/workflows/solution-framing.md +33 -0
  104. package/core/workflows/spec-to-code.md +11 -3
  105. package/docs/README.md +39 -0
  106. package/docs/adapters.md +10 -2
  107. package/docs/agent-configuration.md +99 -0
  108. package/docs/agent-handoffs.md +23 -0
  109. package/docs/architecture.md +22 -1
  110. package/docs/cli.md +29 -4
  111. package/docs/documentation-workflows.md +7 -0
  112. package/docs/end-to-end-workflow.md +14 -1
  113. package/docs/examples/fullstack-web.md +4 -0
  114. package/docs/examples/react-native-app.md +4 -0
  115. package/docs/frontend-mobile.md +76 -0
  116. package/docs/getting-started.md +46 -78
  117. package/docs/harness-maintenance.md +80 -0
  118. package/docs/monetization.md +1 -1
  119. package/docs/project-configuration.md +4 -0
  120. package/docs/project-conventions.md +67 -0
  121. package/docs/research/solution-workflow-sources.md +30 -0
  122. package/docs/skill-matrix.md +34 -6
  123. package/docs/solution-workflow.md +67 -0
  124. package/docs/templates/harness-change-impact.md +30 -0
  125. package/docs/tool-setup/README.md +70 -0
  126. package/docs/tool-setup/claude-code.md +57 -0
  127. package/docs/tool-setup/codex.md +44 -0
  128. package/docs/tool-setup/copilot.md +42 -0
  129. package/docs/tool-setup/cursor.md +44 -0
  130. package/docs/tool-setup/gemini-cli.md +41 -0
  131. package/docs/versioning.md +38 -0
  132. package/evals/README.md +13 -0
  133. package/harness.yaml +4 -2
  134. package/package.json +2 -1
  135. package/templates/AGENTS.md +7 -0
  136. package/templates/openspec/design.md +6 -0
  137. package/templates/openspec/tasks.md +1 -0
@@ -20,6 +20,36 @@
20
20
  "Provides keyboard access and labels"
21
21
  ],
22
22
  "critical": true
23
+ },
24
+ {
25
+ "id": "reuse-web-conventions",
26
+ "prompt": "Add a user search form to an existing React app with apiClient, query hooks, design tokens and shared FormField components. No Next.js dependency is installed.",
27
+ "criteria": [
28
+ "Inspects and reuses the existing client, query/form components and tokens through public APIs",
29
+ "Preserves state, route and folder conventions without adding another HTTP/form/state library or Next assumptions",
30
+ "Covers loading/empty/error/success behavior and reports configured checks rather than invented scripts"
31
+ ],
32
+ "critical": true
33
+ },
34
+ {
35
+ "id": "feature-slice",
36
+ "prompt": "Add paginated customer search and profile editing to an existing React SPA with a router, query cache, apiClient and shared fields. Search responses may arrive out of order. Do not add dependencies.",
37
+ "criteria": [
38
+ "Inspects and reuses actual public route/client/form/query APIs without Next.js or redundant state stores",
39
+ "Defines loading/empty/error/pending validation and stale-response/cache behavior for the slice",
40
+ "Maps acceptance to meaningful behavior tests and reports only checks actually run"
41
+ ],
42
+ "critical": true
43
+ },
44
+ {
45
+ "id": "test-boundaries",
46
+ "prompt": "Verify an async Next.js Server Component route, session isolation and a search race. Only the existing JS component runner is available; no browser/server can start.",
47
+ "criteria": [
48
+ "Writes or plans deterministic user-observable race/component checks with scoped mocks",
49
+ "Separates component results from async server/browser and authorization evidence",
50
+ "Reports unavailable E2E/server checks as blocked with concrete follow-up rather than passed"
51
+ ],
52
+ "critical": true
23
53
  }
24
54
  ]
25
55
  }
@@ -0,0 +1,37 @@
1
+ # React / Next.js coding conventions
2
+
3
+ First apply `.harness/core/rules/project-conventions.md`. Defaults fill gaps; retain the target module's
4
+ router, language, layout, state management, styling and package manager in maintenance work.
5
+
6
+ ## New-project defaults
7
+ - Propose TypeScript with strict checking for a new typed app, after checking stack requirements.
8
+ Keep framework-required route files in their required locations; organize feature code beside its
9
+ use or under feature folders. Put only genuinely shared UI in shared components. No empty layers.
10
+ - Use PascalCase component/type names, lowerCamelCase functions/variables and `useX` for hooks.
11
+ Keep file naming consistent with the chosen project style; framework route naming takes precedence.
12
+ - Keep components focused on rendering and interaction. Put reusable behavior in focused hooks or
13
+ functions only when needed; do not wrap every operation. Prefer local state and derived values;
14
+ introduce global state only for actual cross-feature needs. Do not duplicate server state in a
15
+ second store without a consistency strategy.
16
+ - Use one agreed API client/data-access path, typed boundary contracts and runtime validation at
17
+ untrusted boundaries. Type assertions do not validate external input. Reuse the selected data-fetching,
18
+ form and validation approach rather than adding competing libraries.
19
+ - Reuse design tokens and semantic components. Handle loading, empty, error, success and disabled
20
+ states; support keyboard/focus and labels. Avoid arbitrary inline styles when a token/component fits.
21
+ - Keep secrets and privileged operations server-side. For Next.js inspect the actual router/version
22
+ before server/client decisions. Keep client boundaries narrow and preserve cache/user isolation.
23
+ - Centralize appropriate error translation; show useful recoverable feedback and redact sensitive
24
+ logging. Test behavior and critical flows; keep tests next to features or in the agreed test layout.
25
+ - Agree formatter, lint and type-check commands from the actual setup. Do not invent script names,
26
+ blanket-disable rules, or introduce `any`/suppression comments without a narrow documented reason.
27
+
28
+ ## Maintenance reuse checklist
29
+ Find the design system, API client, auth flow, form fields, validation schemas, hooks, query keys,
30
+ state stores, error UI and test utilities before creating new ones. Keep feature-specific components
31
+ local until shared ownership is justified. Do not create a second HTTP client, theme, modal system,
32
+ state library or folder convention. Shared UI must not import feature internals.
33
+
34
+ ## Verification
35
+ Run configured format/lint/type checks, relevant component/browser tests and production build. Check
36
+ SSR/hydration when affected. Respect existing import-boundary rules; report manual boundary review
37
+ where no check exists. Plain React must not inherit Next-specific commands or architectural assumptions.
@@ -22,6 +22,10 @@ For plain React skip server-component/Next-specific checks and document its actu
22
22
 
23
23
  ## Capability index
24
24
 
25
- Read rules/architecture.md, rules/security.md, rules/database.md and rules/performance.md.
25
+ Read rules/conventions.md before coding, then relevant rules/architecture.md, rules/security.md,
26
+ rules/database.md and rules/performance.md. Project conventions take precedence over adapter defaults.
26
27
  Use only relevant adapter skills listed in adapter.yaml; core TDD, debugging and review remain shared.
28
+ Use harness-react-nextjs-feature-delivery for route/form/API/state slices and
29
+ harness-react-nextjs-behavior-testing for component/integration/browser evidence. Load accessible-ui
30
+ or server-boundaries only for the corresponding risk; do not load every body for a simple task.
27
31
  Review checks/verification.yaml before choosing commands. No check executes automatically.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: harness-react-nextjs-behavior-testing
3
+ description: Verify React and Next.js features with user-facing component, integration and browser tests. Use for forms, asynchronous data, route/auth transitions, regressions or SSR/server changes using the project's existing test tools.
4
+ ---
5
+
6
+ # Web behavior testing
7
+
8
+ ## Input
9
+ Changed feature/AC, confirmed package scripts and test configuration, framework/router/version,
10
+ available browser/build access, and the existing fixtures/providers/API test boundary.
11
+
12
+ ## Procedure
13
+ 1. Read affected code and comparable tests; reuse the actual runner, providers and fixtures. Select
14
+ the smallest checks that demonstrate the behavior and risk; avoid mirroring implementation details.
15
+ 2. Use Core TDD for regressions. Assert visible text, semantic roles, labels and user interactions;
16
+ cover validation, loading/empty/error/success, pending writes and latest-response behavior when touched.
17
+ Control time/network at the agreed boundary and isolate account/query state between tests.
18
+ 3. Keep real feature modules connected in integration tests; mock external services rather than every
19
+ hook. Check expected requests/errors without assuming UI-only authorization protects the backend.
20
+ 4. Use an available browser flow for routing, focus, session transitions and affected hydration/server
21
+ behavior. For Next.js async Server Components verify current runner support; use a real server/browser
22
+ check where component runners cannot exercise that boundary. A mocked render is not server evidence.
23
+ 5. Run configured relevant tests and affected lint/type/build checks. Record command, result and scope;
24
+ report unavailable browser/server checks explicitly instead of labeling them passed.
25
+
26
+ ## Output
27
+ AC → component/integration/browser evidence, meaningful regression tests, actual check results and
28
+ blocked verification with an owner. Identify simulated network/auth behavior separately from real flows.
29
+
30
+ ## Example
31
+ For a search race, arrange two controllable responses, send queries A then B, resolve B then A and
32
+ assert that results B remain visible. For an async Next.js route, report browser/server verification
33
+ as blocked if only a component runner is available; do not manufacture an E2E pass.
34
+
35
+ ## Quality checklist
36
+ - Test user-observable outcomes and failure paths with deterministic fixtures.
37
+ - Keep checks independent and avoid assertions solely on snapshots, hooks or internal state.
38
+ - Separate mocked API/component coverage from browser, server authorization and production build evidence.
39
+ - Explain skipped checks; use actual package scripts rather than invented commands.
40
+
41
+ ## Constraints
42
+ Do not add a competing test framework or approve release based on coverage percentage alone. Do not
43
+ call production services or claim browser/SSR/security verification from unit tests. Keep Core review gates.
44
+
45
+ ## Handoff
46
+ Pass observed failures/results, AC IDs, relevant test/source paths and blocked environment needs to
47
+ Implementer/Reviewer. Use `.agents/skills/harness-react-nextjs-server-boundaries/SKILL.md` for direct
48
+ authorization/cache verification when relevant; the CLI does not run these tests.
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: harness-react-nextjs-feature-delivery
3
+ description: Implement React or Next.js feature slices with existing routes, components, forms and API/state conventions. Use for new screens, CRUD/search forms or feature changes in new or maintained web apps.
4
+ ---
5
+
6
+ # Web feature delivery
7
+
8
+ ## Input
9
+ Task/acceptance IDs, approved screen or compact UX notes, API contract, actual framework/router/version,
10
+ and existing convention/component/client/state paths. Read only relevant source and skills.
11
+
12
+ ## Procedure
13
+ 1. Apply `.harness/core/rules/project-conventions.md` and selected adapter rules. Inspect a comparable
14
+ feature, public components, API client, form validation, query keys, auth and tests. Establish new,
15
+ maintain or mixed scope per module; preserve established libraries and architecture.
16
+ 2. Plan one usable route → interaction → data operation slice. Separate UI state, form state and server
17
+ state; derive values instead of synchronizing duplicate stores. State the ownership of each boundary.
18
+ Ask at most 1–3 consequential A/B/C questions with a recommendation when requirements remain unclear.
19
+ 3. Reuse the agreed client/query/form APIs. Type boundary contracts and validate untrusted inputs;
20
+ handle loading, empty, validation, denied, error, success and pending-submit states. Prevent stale
21
+ responses from replacing newer results; define mutation success/cache refresh and safe retry behavior.
22
+ 4. For Next.js inspect the actual router/version and use
23
+ `.agents/skills/harness-react-nextjs-server-boundaries/SKILL.md` only when server behavior is touched.
24
+ Keep credentials/server dependencies out of browser imports; server authorization is independent
25
+ of client guards. Plain React must retain its actual router and backend contract.
26
+ 5. Reuse design tokens and public UI through
27
+ `.agents/skills/harness-react-nextjs-accessible-ui/SKILL.md` when interactions need it. Preserve keyboard,
28
+ focus and responsive behavior; avoid extracting common abstractions before shared usage is established.
29
+ 6. Use Core TDD/review plus `.agents/skills/harness-react-nextjs-behavior-testing/SKILL.md` for affected
30
+ acceptance paths. Run only confirmed project commands; report blocked checks and the next owner.
31
+
32
+ ## Output
33
+ Feature diff and compact AC → route/component → API/state → test mapping; reused public symbols,
34
+ new-code/dependency rationale, actual command results and unresolved decisions.
35
+
36
+ ## Example
37
+ For “add customer search” in a plain React app with an existing client/query hook and FormField,
38
+ deliver the route using those APIs, stale-result and empty/error handling, and behavior tests.
39
+ An illustrative handoff names `apiClient`, the existing query-key family and changed feature files;
40
+ it does not add Next.js, another HTTP client or invented passing test output.
41
+
42
+ ## Quality checklist
43
+ - Trace each changed interaction to AC and an appropriate behavior check.
44
+ - Keep one source of truth for remote data and record cache ownership.
45
+ - Review form validation, recoverable errors, focus and authorization boundaries.
46
+ - Explain every new shared abstraction/dependency and report actual verification limits.
47
+
48
+ ## Constraints
49
+ Do not install libraries, migrate routers/state or scaffold an application merely because a skill is
50
+ selected. Follow task authorization. Do not infer Figma approval, force ports/adapters/factories on simple
51
+ features, or treat TypeScript/client guards as runtime validation/server authorization.
52
+
53
+ ## Handoff
54
+ Give Implementer/Reviewer/Test Engineer the AC IDs, changed source paths, boundary decisions and actual
55
+ checks. Load UI/UX or Architecture capability only when installed and needed; reuse approved decisions.
@@ -0,0 +1,11 @@
1
+ # Solution architecture
2
+
3
+ Optional instruction capability. Select with `aih init --capabilities architecture` or combine Product,
4
+ Architecture and Delivery; soft recommendations never auto-install other modules.
5
+ Read `workflows/discovery-to-design.md` and only relevant skills. Project-owned outputs live in `docs/architecture/`;
6
+ `aih new-doc <type> --capability architecture` scaffolds a locked draft, does not fill or approve it.
7
+ Templates and roles are in this snapshot; host roles can run sequentially. Core owns clarification,
8
+ permissions and code workflow; adapters own technology rules; DevOps owns release/operations detail.
9
+ Use compact notes for a small fix and existing authoritative docs for maintenance. No task runner,
10
+ model provider or automatic native host-agent installation is supplied. `aih verify/eval --scope all`
11
+ exports checks/unscored cases only; review actual host traces before claiming quality.
@@ -0,0 +1,16 @@
1
+ # Architecture Reviewer
2
+
3
+ Tool-neutral role contract; one host can perform roles sequentially.
4
+
5
+ ## Inputs
6
+ Current design/diff, reviewed requirements/ADRs, project map and actual check evidence.
7
+
8
+ ## Outputs
9
+ Prioritized findings, drift/reuse/boundary assessment and residual risks with evidence.
10
+
11
+ ## Permissions and limits
12
+ Review-only unless asked to fix; author self-review is not independent review. A diagram or ready result is not approval or proof.
13
+
14
+ ## Handoff
15
+ Return requirements gaps to BA/PO, design gaps to SA, sequencing risks to PM and defects to Dev/QA; include actual source and uncertainty.
16
+ Load relevant skills by description; do not assume another agent is running.
@@ -0,0 +1,16 @@
1
+ # Solution Architect
2
+
3
+ Tool-neutral role contract; one host can perform roles sequentially.
4
+
5
+ ## Inputs
6
+ Reviewed product/MVP or existing BA scope, verified project context, NFRs, ADRs and environment constraints.
7
+
8
+ ## Outputs
9
+ Source-linked overview/project map, measurable quality scenarios, architecture alternatives, accepted decision records, contracts, failure flows and implementation boundaries.
10
+
11
+ ## Permissions and limits
12
+ May inspect and propose within authorized scope. Cannot self-approve stakeholder decisions, invent capacity/SLA/budget, impose patterns or migrate existing architecture without a requirement.
13
+
14
+ ## Handoff
15
+ Pass requirement/NFR/ADR IDs, public boundaries, source revisions, acceptance/verification and risks to Delivery/Core/adapters. Return scope questions to BA/PO and operational gaps to DevOps.
16
+ Load relevant skills by description; do not assume another agent is running.
@@ -0,0 +1,35 @@
1
+ {
2
+ "schema_version": 1,
3
+ "id": "architecture",
4
+ "description": "Source-linked solution architecture, NFRs, decisions, patterns and architecture review.",
5
+ "skills": [
6
+ "harness-architecture-project-context",
7
+ "harness-architecture-quality-attributes",
8
+ "harness-architecture-solution-design",
9
+ "harness-architecture-decision-records",
10
+ "harness-architecture-change-impact",
11
+ "harness-architecture-review"
12
+ ],
13
+ "templates": [
14
+ "templates/overview.md",
15
+ "templates/nfr.md",
16
+ "templates/solution-design.md",
17
+ "templates/adr.md",
18
+ "templates/project-map.md",
19
+ "templates/review.md"
20
+ ],
21
+ "agents": [
22
+ "agents/solution-architect.md",
23
+ "agents/architecture-reviewer.md"
24
+ ],
25
+ "workflows": [
26
+ "workflows/discovery-to-design.md",
27
+ "workflows/change-review.md"
28
+ ],
29
+ "module_version": "1.0.0",
30
+ "recommends": [
31
+ "capability:product"
32
+ ],
33
+ "verification": "checks/verification.json",
34
+ "evaluation": "evals/cases.json"
35
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "schema_version": 1,
3
+ "checks": [
4
+ {
5
+ "id": "solution-fit",
6
+ "title": "Review architecture fit and evidence",
7
+ "command": [],
8
+ "when_file": null,
9
+ "evidence": [
10
+ "Verified context/source revisions and public module/data ownership",
11
+ "Alternatives/accepted ADRs and justified feature patterns",
12
+ "Testable NFR targets with owner authority and important failure flows"
13
+ ],
14
+ "execution": "manual"
15
+ },
16
+ {
17
+ "id": "living-map",
18
+ "title": "Review affected project-map freshness",
19
+ "command": [],
20
+ "when_file": null,
21
+ "evidence": [
22
+ "Touched source revision and actual dependency paths",
23
+ "Drift resolution and superseded decisions",
24
+ "Configured checks vs manual/unavailable verification"
25
+ ],
26
+ "execution": "manual"
27
+ }
28
+ ]
29
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "schema_version": 1,
3
+ "cases": [
4
+ {
5
+ "id": "pattern-levels",
6
+ "prompt": "A small CRUD app has no integration requirement. The user asks whether to choose Ports and Adapters or Factory and expects architecture recommendations.",
7
+ "criteria": [
8
+ "Distinguishes application boundary style from object-creation pattern",
9
+ "Compares viable minimal options using actual constraints and avoids speculative layers",
10
+ "Asks only material unresolved choices and records rationale/decision status"
11
+ ],
12
+ "critical": true
13
+ },
14
+ {
15
+ "id": "unknown-nfr",
16
+ "prompt": "Design a service with no verified load, budget, recovery target or SLA. The developer wants a final scaling plan.",
17
+ "criteria": [
18
+ "Marks missing evidence and target authority without fabricating numbers",
19
+ "Proposes testable scenarios and grounded trade-offs with owner questions",
20
+ "Connects decisions to verification/deployment constraints, not automatic microservices"
21
+ ],
22
+ "critical": true
23
+ },
24
+ {
25
+ "id": "stale-map",
26
+ "prompt": "The map says customer calls billing synchronously, but touched source now emits an event. No ADR explains the change. Fix a related retry bug.",
27
+ "criteria": [
28
+ "Inspects actual code and reports specific revision/path drift",
29
+ "Keeps the fix bounded and identifies event ownership/idempotency/failure impact",
30
+ "Updates affected context only on verified facts or reviewed decisions and preserves history"
31
+ ],
32
+ "critical": true
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: harness-architecture-change-impact
3
+ description: Assess change impact and architecture drift using a source-linked living project map.
4
+ ---
5
+
6
+ # harness-architecture-change-impact
7
+
8
+ ## Input
9
+ Requested change, current project-map/ADRs, affected source revisions, API/event/schema consumers and existing tests.
10
+
11
+ ## Procedure
12
+ 1. Check map freshness for touched components and compare actual source to approved docs; record concrete drift.
13
+ 2. Trace requirements → modules/data owners → public contracts/dependents → deployment/operational concerns.
14
+ 3. Identify compatibility, migrations, security/concurrency, failure propagation and cross-repository sequencing risks.
15
+ 4. Compare minimal implementation and alternatives; flag boundary changes for owner decision rather than widening scope silently.
16
+ 5. Update affected project-map/ADR/contract pointers and OpenSpec tasks after the actual decision; retain unrelated docs.
17
+ 6. Pass scope/value changes to PO, dependency/schedule risks to Delivery and release evidence to DevOps.
18
+
19
+ ## Output
20
+ Updated docs/architecture/project-map.md and change-specific impact notes linked to affected IDs/paths.
21
+
22
+ ## Template
23
+ Read `.harness/capabilities/architecture/templates/project-map.md` from the installed snapshot.
24
+ Use `aih new-doc project-map --capability architecture` only for a missing draft;
25
+ reuse existing authoritative docs or a compact task note when appropriate. Never overwrite approved content.
26
+
27
+ ## Example
28
+ A phone-normalization change affects the unique index, API duplicate policy and imports. Locate all three consumers and plan compatible migration rather than editing only a controller.
29
+
30
+ ## Quality checklist
31
+ - Dependent public contracts and data ownership were considered
32
+ - Drift has concrete paths/revisions and a reviewed resolution
33
+ - No speculative impact or unrelated broad refactor
34
+
35
+ ## Handoff
36
+ State source revisions, requirement/decision IDs, approval status, unresolved questions, output paths,
37
+ actual checks and next role. Use the module workflow; role names are not human authorization.
38
+
39
+ ## Constraints
40
+ Follow Core permissions, clarification and project-conventions. Ask only consequential unknowns with
41
+ 2–3 distinct options, evidence-based recommendation and free text; reuse established answers.
42
+ No invented source, measured result, target, estimate or approval. No external messaging/publishing,
43
+ paid tool use or production changes beyond the user's explicit authorization.
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: harness-architecture-decision-records
3
+ description: Record traceable architecture decisions with alternatives, consequences and reconsideration triggers.
4
+ ---
5
+
6
+ # harness-architecture-decision-records
7
+
8
+ ## Input
9
+ Decision question, actual drivers/evidence, options, current ADRs and stakeholder answers.
10
+
11
+ ## Procedure
12
+ 1. Locate related accepted/superseded ADRs; avoid a second conflicting decision on the same scope.
13
+ 2. Record a stable ID, status, scope, source revision, owner and date; proposed is not accepted.
14
+ 3. Explain the problem, viable options and evaluation against drivers; document selected option only after an actual decision.
15
+ 4. Capture positive/negative consequences, verification, migration/rollback and measurable triggers for reconsideration.
16
+ 5. Link requirement/NFR IDs, module/contracts and OpenSpec change. Preserve superseded history and update the project map.
17
+ 6. For a trivial reversible choice, a task note is enough; do not manufacture an ADR for every edit.
18
+
19
+ ## Output
20
+ A project-owned ADR, e.g. docs/architecture/decisions/adr-001.md, linked from project-map and active OpenSpec design.
21
+
22
+ ## Template
23
+ Read `.harness/capabilities/architecture/templates/adr.md` from the installed snapshot.
24
+ Use `aih new-doc adr --capability architecture` only for a missing draft;
25
+ reuse existing authoritative docs or a compact task note when appropriate. Never overwrite approved content.
26
+
27
+ ## Example
28
+ ADR-001 proposes synchronous provider calls for the first release. Owner confirms the latency trade-off; status becomes accepted. Reconsider when measured timeouts exceed the agreed threshold; that threshold stays pending until agreed.
29
+
30
+ ## Quality checklist
31
+ - Accepted status has actual owner decision evidence
32
+ - Alternatives and negative consequences are explicit
33
+ - Superseded records and implementation links stay traceable
34
+
35
+ ## Handoff
36
+ State source revisions, requirement/decision IDs, approval status, unresolved questions, output paths,
37
+ actual checks and next role. Use the module workflow; role names are not human authorization.
38
+
39
+ ## Constraints
40
+ Follow Core permissions, clarification and project-conventions. Ask only consequential unknowns with
41
+ 2–3 distinct options, evidence-based recommendation and free text; reuse established answers.
42
+ No invented source, measured result, target, estimate or approval. No external messaging/publishing,
43
+ paid tool use or production changes beyond the user's explicit authorization.
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: harness-architecture-project-context
3
+ description: Map verified system context, module ownership and source-linked architecture for new or existing projects.
4
+ ---
5
+
6
+ # harness-architecture-project-context
7
+
8
+ ## Input
9
+ Idea/approved BA sources, repository revision, scope/mode, deployments, existing ADRs, integrations and access constraints.
10
+
11
+ ## Procedure
12
+ 1. Read local facts, authoritative requirements and touched source; select small/new/maintain depth and preserve approved existing architecture.
13
+ 2. Map actors, system boundary, external systems, deployment units and trust boundaries; mark inaccessible parts explicitly.
14
+ 3. Inventory modules, public APIs, data owners, reusable common components and allowed dependency direction using actual paths.
15
+ 4. Record revision/date and canonical doc/code links in a living project map; verify touched entries rather than scanning every file.
16
+ 5. List gaps, assumptions, constraints and technical debt with owner; route value/scope to PO, quality gaps to NFR and release gaps to DevOps.
17
+ 6. When source differs from docs, show the specific mismatch and refresh only the affected reviewed context.
18
+
19
+ ## Output
20
+ docs/architecture/overview.md and linked project-map.md; compact notes suffice for a small fix.
21
+
22
+ ## Template
23
+ Read `.harness/capabilities/architecture/templates/overview.md` from the installed snapshot.
24
+ Use `aih new-doc overview --capability architecture` only for a missing draft;
25
+ reuse existing authoritative docs or a compact task note when appropriate. Never overwrite approved content.
26
+
27
+ ## Example
28
+ Maintain customer service: controller → customer use case → repository; organization authorization comes from a supported shared API. An unreachable billing integration is recorded as unknown, not inferred from its name.
29
+
30
+ ## Quality checklist
31
+ - Each component/ownership assertion has a source path or explicitly marked hypothesis
32
+ - Actual public boundaries and source revision recorded
33
+ - No automatic migration or full-document regeneration
34
+
35
+ ## Handoff
36
+ State source revisions, requirement/decision IDs, approval status, unresolved questions, output paths,
37
+ actual checks and next role. Use the module workflow; role names are not human authorization.
38
+
39
+ ## Constraints
40
+ Follow Core permissions, clarification and project-conventions. Ask only consequential unknowns with
41
+ 2–3 distinct options, evidence-based recommendation and free text; reuse established answers.
42
+ No invented source, measured result, target, estimate or approval. No external messaging/publishing,
43
+ paid tool use or production changes beyond the user's explicit authorization.
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: harness-architecture-quality-attributes
3
+ description: Translate NFRs into measurable quality scenarios and verification plans with evidence-backed targets.
4
+ ---
5
+
6
+ # harness-architecture-quality-attributes
7
+
8
+ ## Input
9
+ MVP journeys, data classification, expected load evidence, business constraints, operational environment and known limits.
10
+
11
+ ## Procedure
12
+ 1. Identify quality drivers: security/privacy, correctness, load/latency, availability/recovery, cost and maintainability.
13
+ 2. For important drivers specify stimulus, operating conditions, affected boundary, required response and measurable acceptance.
14
+ 3. Distinguish actual measurements, owner-agreed targets and unconfirmed proposals; do not guess traffic, SLA, budget or RTO/RPO.
15
+ 4. Compare trade-offs and ask only unresolved consequential decisions with grounded options; retain minimum safety in the MVP.
16
+ 5. Link each scenario to requirement/ADR, test or observation plan, owner and necessary environment.
17
+ 6. Pass deployment/recovery/telemetry details to selected DevOps; state unavailable measurements and open risks.
18
+
19
+ ## Output
20
+ docs/architecture/nfr.md with NFR IDs, quality scenarios, evidence and verification ownership.
21
+
22
+ ## Template
23
+ Read `.harness/capabilities/architecture/templates/nfr.md` from the installed snapshot.
24
+ Use `aih new-doc nfr --capability architecture` only for a missing draft;
25
+ reuse existing authoritative docs or a compact task note when appropriate. Never overwrite approved content.
26
+
27
+ ## Example
28
+ A cache miss burst could overload the DB. Document admission/degradation alternatives and a load-test plan. Request expected peak load and tolerated degradation; do not invent a 99.99% SLA.
29
+
30
+ ## Quality checklist
31
+ - Scenario is testable in stated conditions
32
+ - Targets have approval/source or stay pending
33
+ - Failure/recovery and privacy/cost consequences are assessed
34
+
35
+ ## Handoff
36
+ State source revisions, requirement/decision IDs, approval status, unresolved questions, output paths,
37
+ actual checks and next role. Use the module workflow; role names are not human authorization.
38
+
39
+ ## Constraints
40
+ Follow Core permissions, clarification and project-conventions. Ask only consequential unknowns with
41
+ 2–3 distinct options, evidence-based recommendation and free text; reuse established answers.
42
+ No invented source, measured result, target, estimate or approval. No external messaging/publishing,
43
+ paid tool use or production changes beyond the user's explicit authorization.
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: harness-architecture-review
3
+ description: Review solution and implemented boundaries against MVP, NFRs, ADRs and actual verification evidence.
4
+ ---
5
+
6
+ # harness-architecture-review
7
+
8
+ ## Input
9
+ Design/diff, approved requirements, ADRs, project map, tests, build results and deployment constraints.
10
+
11
+ ## Procedure
12
+ 1. Map changed behavior to agreed MVP/AC/NFR and accepted decisions; report missing approval only when consequential and unresolved.
13
+ 2. Check responsibilities, public dependency direction, data owners, common reuse and unjustified patterns or dependencies.
14
+ 3. Walk critical success/failure paths including auth, transaction/concurrency, retry/idempotency and recoverability.
15
+ 4. Inspect executed test/boundary/load/observability evidence; distinguish manual reasoning and unrun checks.
16
+ 5. Rank findings by scenario/impact and provide a bounded remedy; do not auto-approve your own architecture.
17
+ 6. Return scope gaps to PO, design gaps to SA, delivery risks to PM and implementation defects to Dev/QA.
18
+
19
+ ## Output
20
+ docs/architecture/review.md or PR findings linked to requirements/decisions, with evidence and residual risks.
21
+
22
+ ## Template
23
+ Read `.harness/capabilities/architecture/templates/review.md` from the installed snapshot.
24
+ Use `aih new-doc review --capability architecture` only for a missing draft;
25
+ reuse existing authoritative docs or a compact task note when appropriate. Never overwrite approved content.
26
+
27
+ ## Example
28
+ Client UI hides cross-tenant records but the server query lacks tenant filtering. Report the server authorization gap as critical despite passing UI tests; cite the affected route/repository.
29
+
30
+ ## Quality checklist
31
+ - Findings include location, scenario, impact and remedy
32
+ - Review evidence distinguishes tests, manual checks and unknowns
33
+ - Checks do not claim model compliance or production readiness without evidence
34
+
35
+ ## Handoff
36
+ State source revisions, requirement/decision IDs, approval status, unresolved questions, output paths,
37
+ actual checks and next role. Use the module workflow; role names are not human authorization.
38
+
39
+ ## Constraints
40
+ Follow Core permissions, clarification and project-conventions. Ask only consequential unknowns with
41
+ 2–3 distinct options, evidence-based recommendation and free text; reuse established answers.
42
+ No invented source, measured result, target, estimate or approval. No external messaging/publishing,
43
+ paid tool use or production changes beyond the user's explicit authorization.
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: harness-architecture-solution-design
3
+ description: Compare architectures and local design patterns against MVP, NFRs and existing project boundaries.
4
+ ---
5
+
6
+ # harness-architecture-solution-design
7
+
8
+ ## Input
9
+ Reviewed scope, NFR scenarios, context/module map, approved ADRs, team/toolchain constraints and comparable code.
10
+
11
+ ## Procedure
12
+ 1. Identify the decision level: deployment/application style, module boundary or local algorithm/object creation; Factory is not an alternative to Ports and Adapters.
13
+ 2. For genuinely open architecture decisions compare 2–3 viable options by complexity, testability, integration, operations, cost and reversibility.
14
+ 3. Recommend the smallest fit and cite drivers. Layered feature modules, modular monolith and selective Ports and Adapters can combine; do not default to microservices.
15
+ 4. For a feature, identify actual variation/coupling. Consider Strategy for interchangeable behavior, Factory for complex construction, Adapter for interface translation, State for meaningful state transitions; a direct function/class remains valid.
16
+ 5. Record module responsibilities, public dependencies, data ownership, API/event boundaries and important success/failure sequences.
17
+ 6. Define retries/timeouts/idempotency, transaction/consistency policy and observability where needed; record consequential choices in ADRs and agree them before affected code.
18
+ 7. Hand vertical implementation slices and verification boundaries to Delivery/Core and stack-specific adapters.
19
+
20
+ ## Output
21
+ docs/architecture/solution-design.md, linked ADRs and OpenSpec design/tasks, with explicit alternatives and accepted scope.
22
+
23
+ ## Template
24
+ Read `.harness/capabilities/architecture/templates/solution-design.md` from the installed snapshot.
25
+ Use `aih new-doc solution-design --capability architecture` only for a missing draft;
26
+ reuse existing authoritative docs or a compact task note when appropriate. Never overwrite approved content.
27
+
28
+ ## Example
29
+ A CRUD MVP may use feature packages and direct services. If two payment providers differ, introduce a small provider port/adapter only there. Strategy is justified for distinct pricing algorithms, not for a single unchanged calculation.
30
+
31
+ ## Quality checklist
32
+ - Each pattern solves a concrete requirement and its extra complexity is justified
33
+ - MVP, NFRs, contracts and public dependency direction align
34
+ - Failure scenarios and rollout constraints included where relevant
35
+
36
+ ## Handoff
37
+ State source revisions, requirement/decision IDs, approval status, unresolved questions, output paths,
38
+ actual checks and next role. Use the module workflow; role names are not human authorization.
39
+
40
+ ## Constraints
41
+ Follow Core permissions, clarification and project-conventions. Ask only consequential unknowns with
42
+ 2–3 distinct options, evidence-based recommendation and free text; reuse established answers.
43
+ No invented source, measured result, target, estimate or approval. No external messaging/publishing,
44
+ paid tool use or production changes beyond the user's explicit authorization.
@@ -0,0 +1,29 @@
1
+ # Architecture decision record
2
+
3
+ Status: draft / pending review
4
+ Owner: TODO
5
+ Sources and revisions: TODO
6
+ Scope / related requirement and decision IDs: TODO
7
+ Last verified against code: TODO (or not applicable with reason)
8
+
9
+ ## Record identity
10
+ Stable ADR ID: TODO
11
+ Decision status: proposed / accepted / superseded
12
+ Decision owner / date / evidence: TODO
13
+ Supersedes / superseded by: TODO or none
14
+ ## Decision question and drivers
15
+ Problem, affected scope, requirement/NFR/source links and constraints.
16
+ ## Options and assessment
17
+ At least the viable alternatives; strengths, costs and failure consequences against actual drivers.
18
+ ## Resolution
19
+ Chosen option and actual owner decision source. Keep proposed until the consequential choice is settled.
20
+ ## Consequences and follow-through
21
+ Positive/negative implications, implementation/contract paths, verification, migration and rollback.
22
+ ## Reconsideration
23
+ Evidence or agreed thresholds that would reopen the decision; preserve superseded history.
24
+ After scaffolding, move this draft to a stable project-owned decisions/adr-NNN.md path before the next ADR.
25
+
26
+
27
+ ## Review and handoff
28
+ Record actual owner decisions, unresolved consequential questions, verification performed/skipped,
29
+ next role, source/output paths and affected OpenSpec change. Draft text is not an accepted decision.