Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/cutting-a-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 5 additions & 5 deletions scripts/consistency-lint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 <date>--<slug>.
# 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
Expand Down Expand Up @@ -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
Expand Down
20 changes: 10 additions & 10 deletions scripts/release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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
Expand All @@ -37,7 +37,7 @@ EOF

die() { echo "release: $*" >&2; exit 1; }

# render_next_md <src> <version> — print a reset .work.local/NEXT.md to stdout.
# render_next_md <src> <version> — print a reset .abcd/.work.local/NEXT.md to stdout.
#
# Everything above the carry markers is replaced with a fresh header naming
# <version> as the latest release; the carry region and everything below it is
Expand Down Expand Up @@ -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-<timestamp>.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-<timestamp>.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
Expand All @@ -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"
Expand All @@ -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
Expand Down
Loading