aw-spec-cli 0.1.32 → 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 +56 -17
  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 -16
  12. package/assets/.appweaver/orchestrator/rev-templates/design-template.skeleton.md +30 -6
  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 +341 -36
  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 +28 -12
  26. package/assets/.appweaver/orchestrator/workflows/aw-spec-plan.orch.yaml +453 -116
  27. package/assets/.appweaver/orchestrator/workflows/aw-spec-select-lane.orch.yaml +7 -4
  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.4.0
155
+ version: 2.6.0
156
156
  agent_agnostic: true
157
157
  dialect: aw-spec.orchestrator/v1
158
158
 
@@ -191,7 +191,7 @@ standards:
191
191
  vars:
192
192
  # The provenance stamp every generated file carries. It names THIS workflow's version,
193
193
  # so it moves with `version:` above — one value, never a literal repeated per prompt.
194
- generated_by: "aw-spec-onboard/2.4.0"
194
+ generated_by: "aw-spec-onboard/2.5.0"
195
195
  bundle_present: "false" # set by the scan (the bundle holds concepts); reported, gates nothing
196
196
  conformant: "false" # OKF conformance-gate driver
197
197
  pack_present: "false" # the project tier exists ⇒ repo_gov, so this context AMENDS it
@@ -332,11 +332,13 @@ workflow:
332
332
  - { name: bundle_dir, from: "$.bundle_dir" }
333
333
  - { name: bundle_present, from: "$.bundle_present" }
334
334
  - { name: bundle_md_count, from: "$.bundle_md_count" }
335
- # The frontend lane, as the CODE evidences it. `frontend_present` is true only
335
+ # The frontend lane, as the CODE evidences it. `frontend_evidenced` is true only
336
336
  # where a candidate root reached lane strength (a frontend build config, or a
337
337
  # real set of component/view files) — loose scripts and stylesheets under a
338
- # wwwroot/ are reported in the substrate but are NOT a lane.
339
- - { name: frontend_present, from: "$.frontend_present" }
338
+ # wwwroot/ are reported in the substrate but are NOT a lane. It is the code's
339
+ # answer, kept apart from `frontend_present` (the UI rule tier exists, from
340
+ # pack_setup); which lanes this run governs is the declaration's answer, ui_lane.
341
+ - { name: frontend_evidenced, from: "$.frontend_present" }
340
342
  - { name: frontend_separable, from: "$.frontend_separable" }
341
343
  - { name: frontend_roots, from: "$.frontend_roots" }
342
344
  - { name: frontend_root_count, from: "$.frontend_root_count" }
@@ -2303,6 +2305,13 @@ workflow:
2303
2305
  signature form + the ports/contracts. Keep exactly one subsection whose heading
2304
2306
  contains the word "Integration" (the External Integrations table — one port/adapter row
2305
2307
  per IC-): aw-xref matches it by keyword, so it is pinned regardless of layout.
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.
2306
2315
  - §3 Cross-Cutting Concerns — one row per concern THIS project's governance carries, read
2307
2316
  from the technical constitution (Serves = a spec id or a §5 DA-n). Do not import a
2308
2317
  standard concern list the constitution does not evidence.
@@ -2361,9 +2370,14 @@ workflow:
2361
2370
  the generated master template. Never name a layering — neither one you know nor one the
2362
2371
  master did not derive.
2363
2372
  - CARRY OVER the neutral parts of rev-templates/delta-design-template.skeleton.md (in
2364
- context): Change summary, Cross-section impact, Regression targets, New assumptions/
2365
- deviations (DA-n / WA-n), On merge — word for word: finalize-delta merges the spec and
2366
- the model, never this plan, which `plan main` re-derives. Keep behaviour technology-agnostic (signatures +
2373
+ context): Change summary, Model changes this plan realises, Depends on, Cross-section
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 +
2367
2381
  contracts, no code); a shared element is MODIFIED in place, never duplicated; every
2368
2382
  changed element serves a spec id.
2369
2383
  - This aligns with the delta-plan module, which classifies "per the master's OWN
@@ -2560,8 +2574,9 @@ workflow:
2560
2574
  most UI defects live. Where the code handles no error or empty state, template the
2561
2575
  section so the downstream author must record that as-built — never delete it.
2562
2576
  - §5 Contract Binding — keep the lane boundary intact: the binding table binds
2563
- against the service's PUBLISHED SURFACE (the spec's IC- ids and the API contracts
2564
- 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
2565
2580
  comment that where the surface does not name an operation yet, the author binds
2566
2581
  against the spec's own IC-/FR- surface and logs a §8 assumption.
2567
2582
  - §7 Traceability, §8 Assumptions (DA-n), §9 Deviations (WA-n), Change History — carry
@@ -2614,8 +2629,9 @@ workflow:
2614
2629
  - CARRY OVER the neutral parts of rev-templates/ui-delta-design-template.skeleton.md
2615
2630
  (in context): Change summary, Interaction states touched, Contract impact,
2616
2631
  Cross-section impact, Regression targets, New assumptions/deviations (DA-n / WA-n),
2617
- On merge — word for word: finalize-delta merges the spec and the model, never this
2618
- 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.
2619
2635
  - KEEP the "Interaction states touched" section whatever this lane's code shows: a new
2620
2636
  interaction that ships without its loading, empty, error and permission-denied states
2621
2637
  is an incomplete delta, and the template is where that is enforced.