@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.
- package/CHANGELOG.md +57 -0
- package/CONTRIBUTING.md +4 -0
- package/README.md +19 -57
- package/adapters/java-spring/adapter.yaml +3 -2
- package/adapters/java-spring/checks/verification.yaml +12 -0
- package/adapters/java-spring/evals/cases.json +10 -0
- package/adapters/java-spring/rules/conventions.md +39 -0
- package/adapters/java-spring/rules.md +2 -1
- package/adapters/kubernetes/adapter.yaml +1 -1
- package/adapters/kubernetes/rules.md +3 -0
- package/adapters/react-native/adapter.yaml +6 -3
- package/adapters/react-native/checks/verification.yaml +36 -0
- package/adapters/react-native/evals/cases.json +30 -0
- package/adapters/react-native/rules/conventions.md +34 -0
- package/adapters/react-native/rules.md +5 -1
- package/adapters/react-native/skills/harness-react-native-behavior-testing/SKILL.md +48 -0
- package/adapters/react-native/skills/harness-react-native-screen-delivery/SKILL.md +53 -0
- package/adapters/react-nextjs/adapter.yaml +6 -3
- package/adapters/react-nextjs/checks/verification.yaml +36 -0
- package/adapters/react-nextjs/evals/cases.json +30 -0
- package/adapters/react-nextjs/rules/conventions.md +37 -0
- package/adapters/react-nextjs/rules.md +5 -1
- package/adapters/react-nextjs/skills/harness-react-nextjs-behavior-testing/SKILL.md +48 -0
- package/adapters/react-nextjs/skills/harness-react-nextjs-feature-delivery/SKILL.md +55 -0
- package/capabilities/architecture/README.md +11 -0
- package/capabilities/architecture/agents/architecture-reviewer.md +16 -0
- package/capabilities/architecture/agents/solution-architect.md +16 -0
- package/capabilities/architecture/capability.json +35 -0
- package/capabilities/architecture/checks/verification.json +29 -0
- package/capabilities/architecture/evals/cases.json +35 -0
- package/capabilities/architecture/skills/harness-architecture-change-impact/SKILL.md +43 -0
- package/capabilities/architecture/skills/harness-architecture-decision-records/SKILL.md +43 -0
- package/capabilities/architecture/skills/harness-architecture-project-context/SKILL.md +43 -0
- package/capabilities/architecture/skills/harness-architecture-quality-attributes/SKILL.md +43 -0
- package/capabilities/architecture/skills/harness-architecture-review/SKILL.md +43 -0
- package/capabilities/architecture/skills/harness-architecture-solution-design/SKILL.md +44 -0
- package/capabilities/architecture/templates/adr.md +29 -0
- package/capabilities/architecture/templates/nfr.md +22 -0
- package/capabilities/architecture/templates/overview.md +24 -0
- package/capabilities/architecture/templates/project-map.md +26 -0
- package/capabilities/architecture/templates/review.md +23 -0
- package/capabilities/architecture/templates/solution-design.md +29 -0
- package/capabilities/architecture/workflows/change-review.md +12 -0
- package/capabilities/architecture/workflows/discovery-to-design.md +16 -0
- package/capabilities/delivery/README.md +11 -0
- package/capabilities/delivery/agents/project-manager.md +16 -0
- package/capabilities/delivery/capability.json +29 -0
- package/capabilities/delivery/checks/verification.json +29 -0
- package/capabilities/delivery/evals/cases.json +25 -0
- package/capabilities/delivery/skills/harness-delivery-planning/SKILL.md +43 -0
- package/capabilities/delivery/skills/harness-delivery-risk-management/SKILL.md +42 -0
- package/capabilities/delivery/skills/harness-delivery-scope-change/SKILL.md +43 -0
- package/capabilities/delivery/templates/change-assessment.md +23 -0
- package/capabilities/delivery/templates/delivery-plan.md +25 -0
- package/capabilities/delivery/templates/risk-register.md +19 -0
- package/capabilities/delivery/workflows/execution-change.md +9 -0
- package/capabilities/delivery/workflows/planning.md +12 -0
- package/capabilities/product/README.md +7 -0
- package/capabilities/product/agents/business-analyst.md +3 -0
- package/capabilities/product/agents/product-owner.md +5 -1
- package/capabilities/product/agents/project-manager.md +5 -0
- package/capabilities/product/capability.json +9 -4
- package/capabilities/product/checks/verification.json +12 -0
- package/capabilities/product/evals/cases.json +10 -0
- package/capabilities/product/skills/harness-product-acceptance-criteria/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-backlog-prioritization/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-brd-generation/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-business-analysis/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-document-review/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-idea-discovery/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-knowledge-analysis/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-mvp-definition/SKILL.md +43 -0
- package/capabilities/product/skills/harness-product-prd-generation/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-product-outcomes/SKILL.md +42 -0
- package/capabilities/product/skills/harness-product-product-research/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-srs-generation/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-traceability/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-use-case-generation/SKILL.md +17 -0
- package/capabilities/product/skills/harness-product-user-stories/SKILL.md +17 -0
- package/capabilities/product/templates/mvp.md +25 -0
- package/capabilities/product/templates/outcomes.md +23 -0
- package/capabilities/product/workflows/document-driven.md +4 -0
- package/capabilities/product/workflows/idea-driven.md +4 -0
- package/capabilities/product/workflows/product-to-solution.md +15 -0
- package/cli/agents.js +165 -0
- package/cli/environment.js +14 -1
- package/cli/harness.js +24 -9
- package/cli/main.js +19 -6
- package/config/agents.default.json +80 -0
- package/core/agents/documentation.md +13 -0
- package/core/agents/implementer.md +7 -0
- package/core/agents/orchestrator.md +13 -0
- package/core/agents/planner.md +4 -0
- package/core/agents/reviewer.md +8 -0
- package/core/checks/verification.json +37 -0
- package/core/evals/cases.json +70 -0
- package/core/evals/composition.json +15 -0
- package/core/rules/foundations.md +1 -0
- package/core/rules/project-conventions.md +61 -0
- package/core/workflows/agent-routing.md +28 -0
- package/core/workflows/bugfix.md +2 -0
- package/core/workflows/project-setup.md +9 -1
- package/core/workflows/solution-framing.md +33 -0
- package/core/workflows/spec-to-code.md +11 -3
- package/docs/README.md +39 -0
- package/docs/adapters.md +10 -2
- package/docs/agent-configuration.md +99 -0
- package/docs/agent-handoffs.md +23 -0
- package/docs/architecture.md +22 -1
- package/docs/cli.md +29 -4
- package/docs/documentation-workflows.md +7 -0
- package/docs/end-to-end-workflow.md +14 -1
- package/docs/examples/fullstack-web.md +4 -0
- package/docs/examples/react-native-app.md +4 -0
- package/docs/frontend-mobile.md +76 -0
- package/docs/getting-started.md +46 -78
- package/docs/harness-maintenance.md +80 -0
- package/docs/monetization.md +1 -1
- package/docs/project-configuration.md +4 -0
- package/docs/project-conventions.md +67 -0
- package/docs/research/solution-workflow-sources.md +30 -0
- package/docs/skill-matrix.md +34 -6
- package/docs/solution-workflow.md +67 -0
- package/docs/templates/harness-change-impact.md +30 -0
- package/docs/tool-setup/README.md +70 -0
- package/docs/tool-setup/claude-code.md +57 -0
- package/docs/tool-setup/codex.md +44 -0
- package/docs/tool-setup/copilot.md +42 -0
- package/docs/tool-setup/cursor.md +44 -0
- package/docs/tool-setup/gemini-cli.md +41 -0
- package/docs/versioning.md +38 -0
- package/evals/README.md +13 -0
- package/harness.yaml +4 -2
- package/package.json +2 -1
- package/templates/AGENTS.md +7 -0
- package/templates/openspec/design.md +6 -0
- 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/
|
|
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.
|