aw-spec-cli 0.1.33 → 0.1.34

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 (75) hide show
  1. package/README.md +76 -81
  2. package/assets/.appweaver/DESIGN-FORMAT.md +57 -25
  3. package/assets/.appweaver/STACK-PROFILES.md +95 -60
  4. package/assets/.appweaver/orchestrator/LAUNCHER.md +1 -1
  5. package/assets/.appweaver/orchestrator/modules/delta-plan.orch.yaml +173 -32
  6. package/assets/.appweaver/orchestrator/modules/domain-select.orch.yaml +29 -1
  7. package/assets/.appweaver/orchestrator/modules/foundation-pack.orch.yaml +7 -4
  8. package/assets/.appweaver/orchestrator/modules/foundation-spec.orch.yaml +49 -60
  9. package/assets/.appweaver/orchestrator/modules/tech-select.orch.yaml +58 -0
  10. package/assets/.appweaver/orchestrator/orchestrator.py +26 -8
  11. package/assets/.appweaver/orchestrator/rev-templates/delta-design-template.skeleton.md +20 -20
  12. package/assets/.appweaver/orchestrator/rev-templates/design-template.skeleton.md +22 -48
  13. package/assets/.appweaver/orchestrator/rev-templates/ui-delta-design-template.skeleton.md +9 -7
  14. package/assets/.appweaver/orchestrator/rev-templates/ui-design-template.skeleton.md +5 -5
  15. package/assets/.appweaver/orchestrator/workflows/aw-spec-adopt.orch.yaml +239 -40
  16. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-plan-delta.orch.yaml +254 -43
  17. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-plan.orch.yaml +248 -68
  18. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice-delta.orch.yaml +251 -20
  19. package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +316 -10
  20. package/assets/.appweaver/orchestrator/workflows/aw-spec-build.orch.yaml +6 -47
  21. package/assets/.appweaver/orchestrator/workflows/aw-spec-close-delta.orch.yaml +62 -16
  22. package/assets/.appweaver/orchestrator/workflows/aw-spec-finalize-delta.orch.yaml +132 -9
  23. package/assets/.appweaver/orchestrator/workflows/aw-spec-fix-test-coverage.orch.yaml +965 -0
  24. package/assets/.appweaver/orchestrator/workflows/aw-spec-implement.orch.yaml +222 -169
  25. package/assets/.appweaver/orchestrator/workflows/aw-spec-onboard.orch.yaml +21 -22
  26. package/assets/.appweaver/orchestrator/workflows/aw-spec-plan.orch.yaml +453 -120
  27. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-lane.orch.yaml +2 -2
  28. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-stack.orch.yaml +83 -6
  29. package/assets/.appweaver/orchestrator/workflows/aw-spec-specify.orch.yaml +45 -2
  30. package/assets/.appweaver/scripts/bash/aw-spec-actions.sh +324 -74
  31. package/assets/.appweaver/scripts/powershell/aw-spec-actions.ps1 +275 -44
  32. package/assets/.appweaver/scripts/python/aw-foundation.py +16 -13
  33. package/assets/.appweaver/scripts/python/aw-gaps.py +11 -3
  34. package/assets/.appweaver/scripts/python/aw-model-guard.py +295 -0
  35. package/assets/.appweaver/scripts/python/aw-plan-coverage.py +412 -3
  36. package/assets/.appweaver/scripts/python/aw-plangate.py +23 -16
  37. package/assets/.appweaver/scripts/python/aw-stack.py +1794 -265
  38. package/assets/.appweaver/stack-profiles/dotnet-webapi.json +0 -2
  39. package/assets/.appweaver/stack-profiles/java-spring.json +0 -2
  40. package/assets/.appweaver/templates/api-plan-template.md +107 -0
  41. package/assets/.appweaver/templates/delta-api-plan-template.md +87 -0
  42. package/assets/.appweaver/templates/delta-design-template.md +25 -23
  43. package/assets/.appweaver/templates/delta-spec-template.md +3 -3
  44. package/assets/.appweaver/templates/design-template.md +20 -42
  45. package/assets/.appweaver/templates/domain-model-template.md +3 -0
  46. package/assets/.appweaver/templates/ui-delta-design-template.md +11 -8
  47. package/assets/.appweaver/templates/ui-design-template.md +4 -4
  48. package/assets/foundations/foundation.spec.template.txt +25 -18
  49. package/assets/guardrails/README.md +61 -25
  50. package/assets/guardrails/methodology/ux/accessibility-standards.md +38 -0
  51. package/assets/guardrails/methodology/ux/content-design.md +34 -0
  52. package/assets/guardrails/methodology/ux/interaction-states.md +45 -0
  53. package/assets/guardrails/methodology/ux/journey-mapping.md +41 -0
  54. package/assets/guardrails/project-specific/domain/domain-requirements.md +25 -38
  55. package/assets/guardrails/project-specific/domain-rule-bindings.md +33 -69
  56. package/assets/guardrails/project-specific/frontend/ui-requirements.md +2 -2
  57. package/assets/guardrails/project-specific/service/technical-requirements.md +2 -2
  58. package/assets/guardrails/project-specific/tech-rule-bindings.md +16 -13
  59. package/assets/guardrails/sample-healthcare/domain/domain-requirements.md +58 -0
  60. package/assets/guardrails/sample-healthcare/domain-rule-bindings.md +138 -0
  61. package/assets/guardrails/sample-healthcare/frontend/ui-requirements.md +43 -0
  62. package/assets/guardrails/sample-healthcare/service/technical-requirements.md +40 -0
  63. package/assets/guardrails/sample-healthcare/tech-rule-bindings.md +303 -0
  64. package/dist/commands/init.d.ts.map +1 -1
  65. package/dist/commands/init.js +216 -7
  66. package/dist/commands/init.js.map +1 -1
  67. package/dist/utils/config.js +1 -1
  68. package/dist/utils/config.js.map +1 -1
  69. package/dist/utils/foundation.d.ts +36 -0
  70. package/dist/utils/foundation.d.ts.map +1 -0
  71. package/dist/utils/foundation.js +109 -0
  72. package/dist/utils/foundation.js.map +1 -0
  73. package/dist/utils/paths.js +1 -1
  74. package/dist/utils/paths.js.map +1 -1
  75. package/package.json +1 -1
@@ -152,7 +152,7 @@
152
152
 
153
153
  name: aw-spec-onboard
154
154
  description: Onboard an existing codebase for brownfield DEVELOPMENT — a deterministic whole-repo scan produces a high-level OKF feature map (folders/concepts) PLUS the project-level governance scaffold (split constitution + guardrails/brf-<domain>/ with its DOMAIN rule files at domain/ + domain-rule-bindings + code-derived TECHNICAL rule files at service/ + tech-rule-bindings + activated domain), all provisional-from-scan. The first context authors that tier; every later context amends it additively from its own code (new rules, principles and map entries — never a rewrite, renumbering or deletion; a contradiction is recorded as a Divergence note), and a tier that does not exist yet, such as a lane declared after an earlier onboard, is authored in full. Naming an already-onboarded context re-runs that governance pass alone. Where the scan finds a frontend lane in the CODE, it also authors that lane's half — constitution.ui.md (UX-*) — and its code-derived rule files at brf-<domain>/frontend/, mapped under `## /aw-spec-ui-constitution`, `## /aw-spec-plan-frontend` and `## /aw-spec-implement-frontend`; a backend-only repo gets none of it. Every rule tier is reverse-engineered from the CODE alone (never a greenfield rule file), evidenced-only, and WIRED per-workflow so the whole forward pipeline AND adopt govern against THIS codebase — never a greenfield fallback. It also reverse-engineers the repo's own technical structure into a project-specific design + delta-design template pair, installed as the project template overrides, and — where the lane exists — the frontend lane's own pair from the UI source. Every authoring step is shaped by a NEUTRAL rev-templates skeleton; no greenfield constitution, rule file or document template is ever placed in context. Accepts an optional concerns list to look for (onboard decides which are actually present). Reads any declared lane whose folder exists, never writes one; a lane declared before it is built is governed as absent and its governance left to the developer. No migration content; never modifies source.
155
- version: 2.5.0
155
+ version: 2.6.0
156
156
  agent_agnostic: true
157
157
  dialect: aw-spec.orchestrator/v1
158
158
 
@@ -2305,16 +2305,13 @@ workflow:
2305
2305
  signature form + the ports/contracts. Keep exactly one subsection whose heading
2306
2306
  contains the word "Integration" (the External Integrations table — one port/adapter row
2307
2307
  per IC-): aw-xref matches it by keyword, so it is pinned regardless of layout.
2308
- - THE PUBLISHED SURFACE IS A PINNED FORM. In the §2 axis this project publishes its
2309
- endpoints from (titled with the project's own name for it), keep the skeleton's
2310
- endpoint block exactly — the heading `#### `[VERB] [/route]` — [purpose] · Serves …`,
2311
- then **Operation id**, Auth, Request, Success, the Errors table and Maps to — and the
2312
- `#### Requests from the frontend lane` table after the blocks. The contract scripts
2313
- read exactly this form: the API draft is written from the headings and the request
2314
- ledger between the lanes reads the operation ids and the table, so endpoints listed
2315
- in a table instead leave both empty. Keep the Operation id comment: an endpoint the
2316
- code already serves keeps the id it publishes, `—` with a §5 DA-n where it publishes
2317
- none, never an invented one. Omit both only where the code publishes no endpoint.
2308
+ - THE PUBLISHED ENDPOINTS ARE NOT IN THIS TEMPLATE. Each feature keeps them in its own
2309
+ api-plan.md, from the kit's api-plan-template, whose endpoint block form is the same
2310
+ in every project because the contract scripts read exactly it. In the §2 axis this
2311
+ project publishes its endpoints from (titled with the project's own name for it),
2312
+ keep its component table and end it with the skeleton's line pointing to
2313
+ api-plan.md; write no endpoint block and no requests table. Omit the line only where
2314
+ the code publishes no endpoint.
2318
2315
  - §3 Cross-Cutting Concerns — one row per concern THIS project's governance carries, read
2319
2316
  from the technical constitution (Serves = a spec id or a §5 DA-n). Do not import a
2320
2317
  standard concern list the constitution does not evidence.
@@ -2374,13 +2371,13 @@ workflow:
2374
2371
  master did not derive.
2375
2372
  - CARRY OVER the neutral parts of rev-templates/delta-design-template.skeleton.md (in
2376
2373
  context): Change summary, Model changes this plan realises, Depends on, Cross-section
2377
- impact, Contract deltas for the frontend lane, Other open deltas, Regression targets,
2378
- New assumptions/deviations (DA-n / WA-n), On merge — word for word: finalize-delta
2379
- merges the spec and the model, never this plan, which `plan main` re-derives. Keep
2380
- the contract table's Operation id and Change columns and its added / changed /
2381
- removed values: analyze-plan-delta reads them to warn when a change alters or
2382
- removes an operation the frontend binds to. Omit that section only where the code
2383
- has no frontend lane. Keep behaviour technology-agnostic (signatures +
2374
+ impact, API changes, Other open deltas, Regression targets, New
2375
+ assumptions/deviations (DA-n / WA-n), On merge — word for word: finalize-delta
2376
+ merges the spec, the model and the change's delta API plan, never this plan, which
2377
+ `plan main` re-derives. API changes is the one line pointing to delta-api-plan.md:
2378
+ a change's endpoints are planned there, from the kit's delta-api-plan-template,
2379
+ never in this template — omit the section only where the code publishes no
2380
+ endpoint. Keep behaviour technology-agnostic (signatures +
2384
2381
  contracts, no code); a shared element is MODIFIED in place, never duplicated; every
2385
2382
  changed element serves a spec id.
2386
2383
  - This aligns with the delta-plan module, which classifies "per the master's OWN
@@ -2577,8 +2574,9 @@ workflow:
2577
2574
  most UI defects live. Where the code handles no error or empty state, template the
2578
2575
  section so the downstream author must record that as-built — never delete it.
2579
2576
  - §5 Contract Binding — keep the lane boundary intact: the binding table binds
2580
- against the service's PUBLISHED SURFACE (the spec's IC- ids and the API contracts
2581
- backend-plan.md states), never the service's internals. Note in the authoring
2577
+ against the service's PUBLISHED SURFACE (the spec's IC- ids and the endpoints the
2578
+ feature's api-plan.md states, each by its operation id), never the service's
2579
+ internals — the backend plan is not this lane's to read. Note in the authoring
2582
2580
  comment that where the surface does not name an operation yet, the author binds
2583
2581
  against the spec's own IC-/FR- surface and logs a §8 assumption.
2584
2582
  - §7 Traceability, §8 Assumptions (DA-n), §9 Deviations (WA-n), Change History — carry
@@ -2631,8 +2629,9 @@ workflow:
2631
2629
  - CARRY OVER the neutral parts of rev-templates/ui-delta-design-template.skeleton.md
2632
2630
  (in context): Change summary, Interaction states touched, Contract impact,
2633
2631
  Cross-section impact, Regression targets, New assumptions/deviations (DA-n / WA-n),
2634
- On merge — word for word: finalize-delta merges the spec and the model, never this
2635
- plan, which `plan main` re-derives.
2632
+ On merge — word for word: finalize-delta merges the spec, the model and the change's
2633
+ delta API plan, never this plan, which `plan main` re-derives. Contract impact cites
2634
+ the change's API delta (delta-api-plan.md), never the delta backend plan.
2636
2635
  - KEEP the "Interaction states touched" section whatever this lane's code shows: a new
2637
2636
  interaction that ships without its loading, empty, error and permission-denied states
2638
2637
  is an incomplete delta, and the template is where that is enforced.