diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fcaa8be..3b2c456 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -75,7 +75,7 @@ jobs: fi # Deterministic repo-convention checks: ADR numbering (no duplicate NNNN, - # sequential MADR names) and the .work.local/ handoff invariant. + # sequential MADR names) and the .abcd/.work.local/ handoff invariant. - name: Consistency lint (ADR numbering, memory split) if: matrix.os == 'ubuntu-latest' run: scripts/consistency-lint.sh diff --git a/docs/how-to/cutting-a-release.md b/docs/how-to/cutting-a-release.md index 0bde874..1cd3c88 100644 --- a/docs/how-to/cutting-a-release.md +++ b/docs/how-to/cutting-a-release.md @@ -44,7 +44,7 @@ git push origin vX.Y.Z ``` `--dry-run` runs every gate and the rehearsal, prints exactly what the tag/push and the -`.work.local/NEXT.md` reset would do, and changes nothing in git or in `.work.local/NEXT.md`. +`.abcd/.work.local/NEXT.md` reset would do, and changes nothing in git or in `.abcd/.work.local/NEXT.md`. The [`release` workflow](../../.github/workflows/release.yml) then, for the pushed tag (its `verify` job re-runs `check-plan-shipped.sh` as a docs backstop, so a plan left diff --git a/scripts/consistency-lint.sh b/scripts/consistency-lint.sh index 6d62044..e5f9379 100755 --- a/scripts/consistency-lint.sh +++ b/scripts/consistency-lint.sh @@ -6,8 +6,8 @@ # optimistically on their branch, and a collision blocks the merge so the # second branch to land renumbers. # 2. Every ADR is named sequentially as NNNN-title.md, never --. -# 3. No prose or config file points session handoff at .work/NEXT.md — the -# handoff lives in the private .work.local/ layer (ADR 0002). Scope is the +# 3. No prose or config file points session handoff at .abcd/work/NEXT.md — the +# handoff lives in the private .abcd/.work.local/ layer (ADR 0002). Scope is the # human/agent-facing surface (docs, scripts, hooks, templates); Go sources # are exempt because their tests legitimately assert the OLD path is now # absent. The developer-record .abcd/development/plans/ and research/ (which @@ -44,11 +44,11 @@ if [ -d "$decisions" ]; then fi fi -# 3. stale .work/NEXT.md handoff references (must be .work.local/NEXT.md) +# 3. stale .abcd/work/NEXT.md handoff references (must be .abcd/.work.local/NEXT.md) hits=$(git ls-files -- ':!.abcd/development/plans/' ':!.abcd/development/research/' ':!CHANGELOG.md' ':!scripts/consistency-lint.sh' ':!*.go' \ - | xargs -r grep -nF '.work/NEXT.md' 2>/dev/null || true) + | xargs -r grep -nF '.abcd/work/NEXT.md' 2>/dev/null || true) if [ -n "$hits" ]; then - echo "consistency-lint: session handoff is .work.local/NEXT.md, not .work/NEXT.md:" >&2 + echo "consistency-lint: session handoff is .abcd/.work.local/NEXT.md, not .abcd/work/NEXT.md:" >&2 echo "$hits" | sed 's/^/ /' >&2 fail=1 fi diff --git a/scripts/release.sh b/scripts/release.sh index 5c740e6..67cd627 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -6,7 +6,7 @@ # scripts/release.sh vX.Y.Z --dry-run run every gate and rehearsal, print what # the tag/push and NEXT.md reset WOULD do, # and change nothing (no tag, no push, and -# the real .work.local/NEXT.md is never touched) +# the real .abcd/.work.local/NEXT.md is never touched) # # A ferry release is triggered by pushing a vX.Y.Z tag: the release workflow # re-verifies the pushed commit, then builds, checksums, attests, and publishes. @@ -25,7 +25,7 @@ usage: release.sh vX.Y.Z [--dry-run] [--yes] vX.Y.Z the release version (semver, v-prefixed) --dry-run run gates 1-5, print what tag/push and the NEXT.md reset would do; - create no tag or push and never touch .work.local/NEXT.md (the rehearsal + create no tag or push and never touch .abcd/.work.local/NEXT.md (the rehearsal still writes the gitignored bin/ artefacts, as a real run would) --yes do not prompt before the (irreversible) tag + push EOF @@ -37,7 +37,7 @@ EOF die() { echo "release: $*" >&2; exit 1; } -# render_next_md — print a reset .work.local/NEXT.md to stdout. +# render_next_md — print a reset .abcd/.work.local/NEXT.md to stdout. # # Everything above the carry markers is replaced with a fresh header naming # as the latest release; the carry region and everything below it is @@ -178,17 +178,17 @@ main() { fi # ------------------------------------------------------------------------- - # Step 7 — post-tag artefact reset of .work.local/NEXT.md. + # Step 7 — post-tag artefact reset of .abcd/.work.local/NEXT.md. # ------------------------------------------------------------------------- - local next="$ROOT/.work.local/NEXT.md" + local next="$ROOT/.abcd/.work.local/NEXT.md" if [ ! -f "$next" ]; then - echo "release: no .work.local/NEXT.md — skipping the NEXT.md reset." + echo "release: no .abcd/.work.local/NEXT.md — skipping the NEXT.md reset." return 0 fi if [ "$DRY_RUN" -eq 1 ]; then - echo "release: [dry-run] WOULD archive .work.local/NEXT.md to .work.local/history/NEXT-$VERSION-.md" - echo "release: [dry-run] WOULD reset .work.local/NEXT.md; diff (current -> regenerated) below:" + echo "release: [dry-run] WOULD archive .abcd/.work.local/NEXT.md to .abcd/.work.local/history/NEXT-$VERSION-.md" + echo "release: [dry-run] WOULD reset .abcd/.work.local/NEXT.md; diff (current -> regenerated) below:" local tmp tmp="$(mktemp)" # render reads the real NEXT.md read-only and writes to a temp copy; the real @@ -199,7 +199,7 @@ main() { return 0 fi - local histdir="$ROOT/.work.local/history" + local histdir="$ROOT/.abcd/.work.local/history" mkdir -p "$histdir" local archive archive="$histdir/NEXT-$VERSION-$(date +%Y%m%d-%H%M%S).md" @@ -210,7 +210,7 @@ main() { tmp="$(mktemp)" render_next_md "$next" "$VERSION" > "$tmp" mv "$tmp" "$next" - echo "release: reset .work.local/NEXT.md (carry region preserved)." + echo "release: reset .abcd/.work.local/NEXT.md (carry region preserved)." } # Run main only when executed directly; when sourced (tests), just define the