Skip to content

Commit b6125c8

Browse files
fix(ci): propose spec to the canonical registry path, not a flat orphan path
The propose-spec step wrote to specs/${SPEC_KEY}/${SPEC_KEY}-tech-spec.md. The canonical path in the registry's MANIFEST.json includes the domain directory: specs/dve-core/sirus/sirus-tech-spec.md. The flat specs/sirus/ directory does not exist in the registry, so mkdir -p created it and every proposal landed as a new orphan file instead of updating the canonical spec. Effect: the registry's canonical sirus spec has not been updated from this repository since the 2026-06-16 consolidation pass. Every consuming repo's fetch-specs CI gate has been served that stale copy. Changes: - Add SPEC_DOMAIN and build TARGET from it. - Replace mkdir -p of the target directory with an existence check that fails the job loudly if the canonical path is absent, rather than silently creating a path the registry does not track. The same defect is present in the other repos that call propose-spec; each is fixed in its own PR. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U8mxZVHUrAa5NpUJruLzQm
1 parent fa78b64 commit b6125c8

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

.github/workflows/governance.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,18 +126,27 @@ jobs:
126126
env:
127127
GH_TOKEN: ${{ steps.token.outputs.token }}
128128
SPEC_KEY: "sirus"
129+
# Canonical registry path from MANIFEST.json INCLUDES the domain
130+
# directory. A flat specs/<key>/ target creates an orphan file
131+
# instead of updating the canonical spec.
132+
SPEC_DOMAIN: "dve-core"
129133
run: |
130134
REGISTRY="Starisian-Technologies/sparxstar-product-specification-registry"
131135
BRANCH="propose/${SPEC_KEY}-$(date +%Y%m%d-%H%M%S)"
132-
TARGET="specs/${SPEC_KEY}/${SPEC_KEY}-tech-spec.md"
136+
TARGET="specs/${SPEC_DOMAIN}/${SPEC_KEY}/${SPEC_KEY}-tech-spec.md"
133137
134138
git clone --depth 1 \
135139
"https://x-access-token:${GH_TOKEN}@github.com/${REGISTRY}.git" \
136140
registry
137141
138142
cd registry
143+
144+
if [ ! -f "$TARGET" ]; then
145+
echo "::error::Canonical spec path $TARGET not found in registry. Check MANIFEST.json."
146+
exit 1
147+
fi
148+
139149
git checkout -b "$BRANCH"
140-
mkdir -p "$(dirname "$TARGET")"
141150
cp "../source/docs/${SPEC_KEY}-tech-spec.md" "$TARGET"
142151
143152
git config user.name "sparxstar-contract-sync[bot]"

0 commit comments

Comments
 (0)