aw-spec-cli 0.1.18 → 0.1.19
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/DESIGN-FORMAT.md +45 -21
- package/assets/.appweaver/orchestrator/modules/delta-plan.orch.yaml +62 -14
- package/assets/.appweaver/orchestrator/modules/delta-spec.orch.yaml +6 -4
- package/assets/.appweaver/orchestrator/modules/lane-gate.orch.yaml +9 -1
- package/assets/.appweaver/orchestrator/modules/tech-select.orch.yaml +21 -0
- package/assets/.appweaver/orchestrator/orchestrator.py +23 -1
- package/assets/.appweaver/orchestrator/rev-templates/design-template.skeleton.md +18 -11
- package/assets/.appweaver/orchestrator/rev-templates/ui-design-template.skeleton.md +5 -3
- package/assets/.appweaver/orchestrator/workflows/aw-spec-adopt.orch.yaml +298 -109
- package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-plan.orch.yaml +161 -34
- package/assets/.appweaver/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +125 -24
- package/assets/.appweaver/orchestrator/workflows/aw-spec-build.orch.yaml +18 -7
- package/assets/.appweaver/orchestrator/workflows/aw-spec-close-delta.orch.yaml +182 -39
- package/assets/.appweaver/orchestrator/workflows/aw-spec-finalize-delta.orch.yaml +300 -35
- package/assets/.appweaver/orchestrator/workflows/aw-spec-implement.orch.yaml +190 -31
- package/assets/.appweaver/orchestrator/workflows/aw-spec-onboard.orch.yaml +93 -8
- package/assets/.appweaver/orchestrator/workflows/aw-spec-plan.orch.yaml +34 -7
- package/assets/.appweaver/orchestrator/workflows/aw-spec-recall-delta.orch.yaml +319 -0
- package/assets/.appweaver/orchestrator/workflows/aw-spec-specify.orch.yaml +125 -24
- package/assets/.appweaver/scripts/bash/aw-spec-actions.sh +846 -35
- package/assets/.appweaver/scripts/bash/common.sh +28 -1
- package/assets/.appweaver/scripts/powershell/aw-spec-actions.ps1 +843 -46
- package/assets/.appweaver/scripts/python/aw-inventory.py +3 -2
- package/assets/.appweaver/templates/design-template.md +41 -30
- package/assets/.appweaver/templates/spec-template.md +7 -4
- package/assets/.appweaver/templates/ui-design-template.md +7 -3
- package/assets/guardrails/domain/healthcare/auditing.domain.md +3 -3
- package/assets/guardrails/domain/pharma/auditing.domain.md +3 -3
- package/assets/guardrails/technology/dotnet-webapi/api-versioning.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/auditing.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/authorization.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/clean-architecture.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/cqrs.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/data-classification.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/eventing.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/folder-structure.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/modular-monolith.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/persistence.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/vertical-slices.md +1 -1
- package/assets/guardrails/technology/dotnet-webapi/zero-trust.md +1 -1
- package/assets/guardrails/technology/nextjs/accessibility-implementation.md +1 -1
- package/assets/guardrails/technology/nextjs/api-integration.dotnet-webapi.md +1 -1
- package/assets/guardrails/technology/nextjs/api-integration.java-spring.md +1 -1
- package/assets/guardrails/technology/nextjs/auth-session.md +1 -1
- package/assets/guardrails/technology/nextjs/component-architecture.md +1 -1
- package/assets/guardrails/technology/nextjs/design-system.md +1 -1
- package/assets/guardrails/technology/nextjs/error-handling.md +1 -1
- package/assets/guardrails/technology/nextjs/forms-and-validation.md +1 -1
- package/assets/guardrails/technology/nextjs/i18n.md +1 -1
- package/assets/guardrails/technology/nextjs/performance-budgets.md +1 -1
- package/assets/guardrails/technology/nextjs/routing-navigation.md +1 -1
- package/assets/guardrails/technology/nextjs/state-management.md +1 -1
- package/package.json +1 -1
|
@@ -26,17 +26,44 @@ find_specify_root() {
|
|
|
26
26
|
|
|
27
27
|
# Get repository root, prioritizing .appweaver directory
|
|
28
28
|
# This prevents using a parent repository when aw-spec is initialized in a subdirectory
|
|
29
|
+
#
|
|
30
|
+
# A `[` or `]` ANYWHERE IN THE ROOT REFUSES THE RUN, in both shells. Those two characters
|
|
31
|
+
# are a wildcard character class to PowerShell's `-Path` family and to a shell/Python
|
|
32
|
+
# glob, so under such a root a path test answers about a DIFFERENT path — `…/a[b]/x` is
|
|
33
|
+
# looked up as `…/ab/x` — and an enumeration quietly returns nothing. The kit resolves
|
|
34
|
+
# hundreds of paths against this root, and the failure mode is not an error but a wrong
|
|
35
|
+
# answer: a gate that finds no delta reports a clean tree, and a merge that finds no
|
|
36
|
+
# section merges nothing and says it succeeded.
|
|
37
|
+
#
|
|
38
|
+
# The per-call fixes are in (glob.escape on every pattern's directory here; -LiteralPath
|
|
39
|
+
# throughout the PowerShell twin), and they cover every site the kit resolves through a
|
|
40
|
+
# pattern. What they cannot cover is the ~150 plain existence tests, and a half-guarded
|
|
41
|
+
# root is worse than a refused one because it looks like it works. So the root itself is
|
|
42
|
+
# the gate, checked once, naming the path.
|
|
43
|
+
_reject_bracketed_root() {
|
|
44
|
+
case "$1" in
|
|
45
|
+
*'['*|*']'*)
|
|
46
|
+
echo "aw-spec: this repository's path contains '[' or ']' — $1" >&2
|
|
47
|
+
echo "aw-spec: those characters are a wildcard character class to the path APIs this kit uses (PowerShell -Path, shell and Python globs), so file lookups would silently resolve to a different path or to nothing at all, and a gate that finds nothing reports success. Move or rename the checkout so no directory in its path contains a square bracket, then re-run." >&2
|
|
48
|
+
return 1 ;;
|
|
49
|
+
esac
|
|
50
|
+
return 0
|
|
51
|
+
}
|
|
52
|
+
|
|
29
53
|
get_repo_root() {
|
|
30
54
|
# First, look for .appweaver directory (aw-spec's own marker)
|
|
31
55
|
local specify_root
|
|
32
56
|
if specify_root=$(find_specify_root); then
|
|
57
|
+
_reject_bracketed_root "$specify_root" || exit 1
|
|
33
58
|
echo "$specify_root"
|
|
34
59
|
return
|
|
35
60
|
fi
|
|
36
61
|
|
|
37
62
|
# Final fallback to script location
|
|
38
63
|
local script_dir="$(CDPATH="" cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
39
|
-
(cd "$script_dir/../../.." && pwd)
|
|
64
|
+
local fallback_root; fallback_root=$(cd "$script_dir/../../.." && pwd)
|
|
65
|
+
_reject_bracketed_root "$fallback_root" || exit 1
|
|
66
|
+
echo "$fallback_root"
|
|
40
67
|
}
|
|
41
68
|
|
|
42
69
|
# FEATURE RESOLUTION IS SINGLE-CHANNEL: `.appweaver/feature.json`, written by
|