aw-spec-cli 0.1.13 → 0.1.15
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/assets/.appweaver/STACK-PROFILES.md +1 -1
- package/assets/.appweaver/orchestrator/orchestrator.py +5 -0
- package/assets/.appweaver/orchestrator/rev-templates/domain-rule-bindings.skeleton.md +10 -3
- package/assets/.appweaver/orchestrator/rev-templates/tech-rule-bindings.skeleton.md +38 -11
- package/assets/.appweaver/orchestrator/workflows/aw-spec-adopt.orch.yaml +2 -1
- package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-design.orch.yaml +607 -123
- package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +625 -66
- package/assets/.appweaver/orchestrator/workflows/aw-spec-implement-ui.orch.yaml +407 -134
- package/assets/.appweaver/orchestrator/workflows/aw-spec-implement.orch.yaml +452 -143
- package/assets/.appweaver/orchestrator/workflows/aw-spec-onboard.orch.yaml +78 -14
- package/assets/.appweaver/orchestrator/workflows/aw-spec-plan-ui.orch.yaml +597 -0
- package/assets/.appweaver/orchestrator/workflows/aw-spec-plan.orch.yaml +688 -0
- package/assets/.appweaver/orchestrator/workflows/aw-spec-select-feature.orch.yaml +3 -3
- package/assets/.appweaver/orchestrator/workflows/aw-spec-specify.orch.yaml +23 -23
- package/assets/.appweaver/orchestrator/workflows/aw-spec-story-plan.orch.yaml +945 -0
- package/assets/.appweaver/orchestrator/workflows/aw-spec-sync-stories.orch.yaml +1040 -0
- package/assets/.appweaver/scripts/bash/aw-spec-actions.sh +2069 -28
- package/assets/.appweaver/scripts/bash/aw-xref.sh +2 -1
- package/assets/.appweaver/scripts/powershell/aw-spec-actions.ps1 +1973 -13
- package/assets/.appweaver/scripts/powershell/aw-xref.ps1 +2 -1
- package/assets/.appweaver/scripts/python/aw-xref.py +246 -20
- package/assets/.appweaver/templates/design-template.md +88 -54
- package/assets/.appweaver/templates/spec-template.md +12 -10
- package/assets/.appweaver/templates/story-template.md +48 -8
- package/assets/.appweaver/templates/ui-design-template.md +71 -39
- package/assets/guardrails/projects/dotnet-default-project/domain-rule-bindings.md +19 -7
- package/assets/guardrails/projects/dotnet-default-project/tech-rule-bindings.md +35 -26
- package/package.json +1 -1
- package/assets/.appweaver/orchestrator/workflows/aw-spec-design-ui.orch.yaml +0 -386
- package/assets/.appweaver/orchestrator/workflows/aw-spec-design.orch.yaml +0 -382
|
@@ -647,7 +647,7 @@ workflow:
|
|
|
647
647
|
charter; a later step in this same run authors it, so wire the bullet now), then the
|
|
648
648
|
domain identity/regulatory/interop files → domain principles.
|
|
649
649
|
- `## /aw-spec-specify` — the FULL domain set (specify models the domain, lifts CN-/DC-/IC-).
|
|
650
|
-
- `## /aw-spec-
|
|
650
|
+
- `## /aw-spec-plan` — `_None — design loads no domain file. Domain reaches design only through the spec._`
|
|
651
651
|
- `## /aw-spec-implement` — `_None — implement loads no domain file. Domain reaches implement only through design.md._`
|
|
652
652
|
- `## /aw-spec-gate` — the conformance-checklist set (the *.domain.md files).
|
|
653
653
|
Each bullet is a workspace-relative path `- guardrails/projects/{{domain_slug}}/domain/<file>`.
|
|
@@ -1190,11 +1190,11 @@ workflow:
|
|
|
1190
1190
|
ONLY a heading you have a generated file for (an absent heading soft-continues → loads
|
|
1191
1191
|
nothing):
|
|
1192
1192
|
- `## /aw-spec-specify` — EXACTLY ONE bullet: `service/domain-modelling.md`, the modelling methodology. NEVER an architecture / persistence / codegen / security file here — specify is the domain phase and any technology rule under this heading breaks its domain purity. Omit the heading only if you did not write domain-modelling.md.
|
|
1193
|
-
- `## /aw-spec-
|
|
1193
|
+
- `## /aw-spec-plan` — the as-built architecture / cross-cutting rules the design author mediates the spec against.
|
|
1194
1194
|
- `## /aw-spec-implement` — the code-generation / convention set the generator builds against (from design.md).
|
|
1195
1195
|
- `## /aw-spec-implement-delta` — the same code-generation set, scoped to a change's delta-design.
|
|
1196
1196
|
- `## /aw-spec-build` — the layering + convention rules the compile-fixer respects.
|
|
1197
|
-
- `## /aw-spec-analyze-slice` — the conformance rules the
|
|
1197
|
+
- `## /aw-spec-analyze-slice` — the conformance rules the spec↔code gate validates against.
|
|
1198
1198
|
- `## /aw-spec-adopt` — the technical reference set the reversed design mediates against (a subset of design's).
|
|
1199
1199
|
- `## /aw-spec-constitution` — the standards a later `/appweaver constitution` re-ratifies the TECHNICAL half from. You authored that half from code evidence before these files existed; this heading is what makes a re-run author from THIS project's rules rather than from an empty set. Ratifiable standards only, no worked `examples/` sample, no domain file.
|
|
1200
1200
|
- `## /aw-spec-run` — the runtime / execution conventions the app-run step honors (add ONLY if the code evidences a runtime/hosting concern file; NOT data-migration — migration is the deferred later phase).
|
|
@@ -1316,18 +1316,33 @@ workflow:
|
|
|
1316
1316
|
|
|
1317
1317
|
WIRE THE MAP — EDIT guardrails/projects/{{domain_slug}}/tech-rule-bindings.md IN PLACE.
|
|
1318
1318
|
It already exists and carries the technical headings you wrote; PRESERVE all of them
|
|
1319
|
-
byte-for-byte.
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1319
|
+
byte-for-byte. Add THREE headings, in this order, after the last technical heading and
|
|
1320
|
+
BEFORE the closing quick-reference table, then their three rows in that table (same
|
|
1321
|
+
format as the existing rows). Every bullet is a workspace-relative path
|
|
1322
|
+
`- guardrails/projects/{{domain_slug}}/frontend/<file>` naming a file you JUST
|
|
1323
|
+
GENERATED — never a greenfield rule, never a service-lane file, never an example.
|
|
1324
|
+
Precede each heading with a short HTML comment saying what that phase loads and why.
|
|
1325
|
+
1. `## /aw-spec-ui-constitution` — the RATIFIABLE lane standards,
|
|
1326
|
+
`frontend/ui-constitution.md` FIRST. Say in its comment that the heading is also
|
|
1326
1327
|
the authoritative signal that the project has a frontend lane.
|
|
1327
|
-
2.
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1328
|
+
2. `## /aw-spec-plan-ui` — the DESIGN set /appweaver plan-ui works from when it
|
|
1329
|
+
authors or conforms frontend-plan.md: the generated files covering composition,
|
|
1330
|
+
routing/navigation, client state, interaction states, forms, accessibility,
|
|
1331
|
+
internationalization and performance — whichever of those you actually wrote.
|
|
1332
|
+
3. `## /aw-spec-implement-ui` — the CODE-GENERATION set /appweaver implement-ui
|
|
1333
|
+
builds against: conventions, the client/service pairing, styling/design system,
|
|
1334
|
+
forms, accessibility, internationalization, performance and UI testing — again,
|
|
1335
|
+
whichever you actually wrote.
|
|
1336
|
+
THE TWO PHASE SETS OVERLAP ON PURPOSE. A concern like forms, accessibility, i18n or
|
|
1337
|
+
performance carries a DESIGN half and an IMPLEMENT half of one rule — the design decides
|
|
1338
|
+
the states, affordances and targets; implement realises them. Map such a file under BOTH
|
|
1339
|
+
headings. A rule read by only one phase loses the pairing, and the half that goes unread
|
|
1340
|
+
is the half that goes unbuilt.
|
|
1341
|
+
MAP ONLY WHAT YOU GENERATED. A heading with no matching generated file is omitted
|
|
1342
|
+
entirely rather than bulleted with a path that does not exist — an absent heading
|
|
1343
|
+
soft-continues, a broken bullet is reported as missing on every later run.
|
|
1344
|
+
Do NOT add `## /aw-spec-characterize` or `## /aw-spec-parity`: characterize is
|
|
1345
|
+
opt-on-touch and parity belongs to the deferred migration phase.
|
|
1331
1346
|
|
|
1332
1347
|
Write ONLY inside guardrails/projects/{{domain_slug}}/ (frontend/ + the map edit); modify
|
|
1333
1348
|
no source. Report the files written, the concerns you found present with the code paths
|
|
@@ -1369,6 +1384,55 @@ workflow:
|
|
|
1369
1384
|
project as backend-only. Add the heading after the last technical one, bulleting
|
|
1370
1385
|
frontend/ui-constitution.md first, then the rest of the frontend/ set.
|
|
1371
1386
|
|
|
1387
|
+
# The lane's two PHASE headings, probed the same way and for the same reason. Ratifying
|
|
1388
|
+
# the lane is not the same as governing it: with `## /aw-spec-ui-constitution` alone the
|
|
1389
|
+
# generated frontend/ rules reach /appweaver constitution and NOTHING else, so plan-ui
|
|
1390
|
+
# designs the experience from constitution.ui.md alone and implement-ui generates against
|
|
1391
|
+
# nothing — while the rules sit on disk unreferenced. An absent heading soft-continues, so
|
|
1392
|
+
# without these probes that gap is invisible on every run. Announce, don't stop: the files
|
|
1393
|
+
# are written and each heading is one edit away.
|
|
1394
|
+
- id: probe_ui_plan_wiring
|
|
1395
|
+
action: execute_script
|
|
1396
|
+
condition: "{{ui_lane}} == true"
|
|
1397
|
+
on_error: continue
|
|
1398
|
+
script: { ref: actions }
|
|
1399
|
+
subcommand: resolve-tech
|
|
1400
|
+
args: ["--command", "aw-spec-plan-ui"]
|
|
1401
|
+
outputs:
|
|
1402
|
+
- { name: ui_plan_rules, from: "$.candidates" }
|
|
1403
|
+
- id: warn_ui_plan_wiring
|
|
1404
|
+
action: verify_context
|
|
1405
|
+
condition: "{{ui_lane}} == true"
|
|
1406
|
+
require_non_empty: ui_plan_rules
|
|
1407
|
+
on_empty: continue
|
|
1408
|
+
on_empty_message: >
|
|
1409
|
+
guardrails/projects/{{domain_slug}}/tech-rule-bindings.md maps nothing under
|
|
1410
|
+
`## /aw-spec-plan-ui`, so /appweaver plan-ui will author frontend-plan.md with NO
|
|
1411
|
+
code-derived experience rules — only constitution.ui.md — while the files this run
|
|
1412
|
+
generated at guardrails/projects/{{domain_slug}}/frontend/ go unread. Add the heading
|
|
1413
|
+
after `## /aw-spec-ui-constitution`, bulleting the generated composition, routing,
|
|
1414
|
+
client-state, interaction-state, forms, accessibility, i18n and performance rules.
|
|
1415
|
+
- id: probe_ui_impl_wiring
|
|
1416
|
+
action: execute_script
|
|
1417
|
+
condition: "{{ui_lane}} == true"
|
|
1418
|
+
on_error: continue
|
|
1419
|
+
script: { ref: actions }
|
|
1420
|
+
subcommand: resolve-tech
|
|
1421
|
+
args: ["--command", "aw-spec-implement-ui"]
|
|
1422
|
+
outputs:
|
|
1423
|
+
- { name: ui_impl_rules, from: "$.candidates" }
|
|
1424
|
+
- id: warn_ui_impl_wiring
|
|
1425
|
+
action: verify_context
|
|
1426
|
+
condition: "{{ui_lane}} == true"
|
|
1427
|
+
require_non_empty: ui_impl_rules
|
|
1428
|
+
on_empty: continue
|
|
1429
|
+
on_empty_message: >
|
|
1430
|
+
guardrails/projects/{{domain_slug}}/tech-rule-bindings.md maps nothing under
|
|
1431
|
+
`## /aw-spec-implement-ui`, so /appweaver implement-ui will generate UI code against no
|
|
1432
|
+
code-derived conventions. Add the heading bulleting the generated conventions, service
|
|
1433
|
+
pairing, styling, forms, accessibility, i18n, performance and UI-testing rules — the
|
|
1434
|
+
ones that also serve the design phase belong under BOTH headings.
|
|
1435
|
+
|
|
1372
1436
|
# ═══════════ LANE DECLARATION — read back, never written ═══════════════════════
|
|
1373
1437
|
# onboard does not declare lanes. It used to: before select-stack was the first
|
|
1374
1438
|
# command of this sequence, a repo could arrive here with no declaration at all, so
|