From 0ee3235081486393f6efab3c4b47461155fc6eb8 Mon Sep 17 00:00:00 2001 From: Alex Reppel <77722411+REPPL@users.noreply.github.com> Date: Thu, 6 Aug 2026 16:59:49 +0000 Subject: [PATCH 1/6] docs: the build-plumbing comments state the gate suite that runs (iss-182) The Makefile preflight comment, the pre-push hook comment, and the ci.yml header each described the gates by an older, smaller shape. All three now state what actually runs, verified against the recipe or workflow beside them. Comment-only: no recipe, hook logic, workflow step, or gate behaviour changes. iss-182 resolved in the ledger in the same change. Assisted-by: Claude:claude-opus-5 --- ...plumbing-comments-describe-an-older-gate-suite.md | 2 ++ .githooks/pre-push | 9 ++++++--- .github/workflows/ci.yml | 7 +++++-- CHANGELOG.md | 12 ++++++++++++ Makefile | 8 +++++--- 5 files changed, 30 insertions(+), 8 deletions(-) rename .abcd/work/issues/{open => resolved}/iss-182-build-plumbing-comments-describe-an-older-gate-suite.md (69%) diff --git a/.abcd/work/issues/open/iss-182-build-plumbing-comments-describe-an-older-gate-suite.md b/.abcd/work/issues/resolved/iss-182-build-plumbing-comments-describe-an-older-gate-suite.md similarity index 69% rename from .abcd/work/issues/open/iss-182-build-plumbing-comments-describe-an-older-gate-suite.md rename to .abcd/work/issues/resolved/iss-182-build-plumbing-comments-describe-an-older-gate-suite.md index 962eff11..a9c7b318 100644 --- a/.abcd/work/issues/open/iss-182-build-plumbing-comments-describe-an-older-gate-suite.md +++ b/.abcd/work/issues/resolved/iss-182-build-plumbing-comments-describe-an-older-gate-suite.md @@ -7,6 +7,8 @@ category: "documentation" source: "impl-review" found_during: "2026-08-05 iss-37 merge-gate review" found_at: "Makefile" +resolution: "Three build-plumbing comments corrected to state what actually runs. The Makefile preflight comment names the three lint-gate prerequisites (lint-reviews, record-lint, docs-lint) ahead of build/vet/test/race and attributes the `gofmt -l .` format gate to CI's check job rather than to preflight. The .githooks/pre-push comment describes what the hook enforces — `make preflight`, i.e. the three lint gates then the four Go steps — instead of a check-job trio, and its Actions-only list now carries the smoke lane and notes that CI's reviews-charter job repeats what lint-reviews already ran locally. The ci.yml header comment names the check job's gofmt, record-lint and docs-lint steps (ubuntu leg alone) and the separate reviews-charter and smoke jobs alongside the secret scan and workflow audit. Comment-only: no recipe, hook logic, workflow step, or gate behaviour changed." +impact: fix --- Three build-plumbing comments still describe the pre-push gate and CI by an older, smaller shape. Same class as iss-37 (claims must match reality), in living files its re-scope does not cover, and no ledger entry records them until now. The fix direction is the same bar: state what actually runs, verified against the recipe or workflow beside the comment. diff --git a/.githooks/pre-push b/.githooks/pre-push index f57bb9b2..4fa3e1a6 100755 --- a/.githooks/pre-push +++ b/.githooks/pre-push @@ -9,9 +9,12 @@ # (see the public-flip checklist). It refuses: a direct push to the # protected branch, a deletion of it, and any non-fast-forward (force) # push to any branch. -# 2. The CI check-job trio (build/vet/test + internal race) must pass -# natively before a push leaves this machine. Secret-scan and -# workflow-audit lanes stay in Actions. +# 2. `make preflight` must pass natively before a push leaves this machine — +# the three lint gates (lint-reviews, record-lint, docs-lint), then build, +# vet, test and the race-enabled internal tests. CI's check job adds a +# `gofmt -l .` format gate on top of those four Go steps, and the +# secret-scan, workflow-audit and smoke lanes run in Actions only; the +# reviews-charter job there repeats what lint-reviews already ran here. set -euo pipefail cd "$(git rev-parse --show-toplevel)" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b0c0e917..bc7a2273 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,10 @@ name: ci -# Lightweight checks on every push and pull request: build, vet, and test on -# macOS and Linux, plus full-history secret scanning and a workflow audit. +# Checks on every push and pull request. The check job builds, vets and tests on +# macOS and Linux, with race-enabled internal tests on both and the `gofmt -l .` +# format gate, record-lint and docs-lint on the ubuntu leg alone. Separate jobs +# run full-history secret scanning, a workflow audit, the reviews-charter +# discipline, and the smoke harness. on: push: branches: ['**'] diff --git a/CHANGELOG.md b/CHANGELOG.md index 58b8650f..fae34eb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,18 @@ called out in a **Breaking** section. ### Fixed +- **The build plumbing's own comments describe the gate suite that runs** + (iss-182). The `Makefile` preflight comment claimed the target ran "the same + steps CI's check job runs" and named only the reviews-charter gate, though the + recipe takes three lint prerequisites (`lint-reviews`, `record-lint`, + `docs-lint`) and CI additionally runs a `gofmt -l .` format gate that preflight + does not; the `.githooks/pre-push` comment called what the hook enforces a + "check-job trio", undercounting those lint gates, and listed only the + secret-scan and workflow-audit lanes as Actions-only; and the `ci.yml` header + omitted the check job's gofmt, record-lint and docs-lint steps along with the + reviews-charter and smoke jobs. All three now state what actually runs. + Comment-only — no recipe, hook logic, workflow step, or gate behaviour moves. + - **Merging a rule-set overlay onto a base that declares no domains no longer panics** (iss-187). `rules.Merge` promises that new domain keys are added, but it wrote them into a map it never allocated when the base carried no domains of diff --git a/Makefile b/Makefile index 6026ecb6..5f24ddb0 100644 --- a/Makefile +++ b/Makefile @@ -55,9 +55,11 @@ record-lint: docs-lint: @go run ./cmd/abcd docs lint -# Pre-push gate (invoked by .githooks/pre-push): the same steps CI's check job -# runs — build, vet, test, and race-enabled internal tests — natively, plus the -# reviews-charter discipline. Host-native `go build` (not the cross-compiling +# Pre-push gate (invoked by .githooks/pre-push): the three lint gates +# (lint-reviews, record-lint, docs-lint) as prerequisites, then build, vet, test, +# and race-enabled internal tests natively. CI's check job runs those same four +# Go steps plus a `gofmt -l .` format gate this target does not, so run gofmt +# separately before pushing. Host-native `go build` (not the cross-compiling # build target) because it mirrors CI. preflight: lint-reviews record-lint docs-lint go build ./... From 86521ec4bcc674d79be2ae768167d1480570453e Mon Sep 17 00:00:00 2001 From: Alex Reppel <77722411+REPPL@users.noreply.github.com> Date: Thu, 6 Aug 2026 16:59:50 +0000 Subject: [PATCH 2/6] docs: the record states the channel the .abcd exclusion is true of (iss-183) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The blanket present-tense claim that .abcd/** never ships, or is excluded from the release artifact by packaging, survived across CONTEXT.md, AGENTS.md, both .abcd READMEs, four brief sections, the release glossary term, the Phase 1 page and a scanner code comment. Each descriptive instance now carries the channel-truthful phrasing the README already uses — present in every repository checkout, marketplace installs and release source archives included; never in the released binaries — and names the launch bundler as the implemented structural deny no cut release has yet run. Press-release and full-cut-design sites are exempt on genre; decision records, dated plans and intent bodies keep their wording. iss-183 resolved in the ledger, with the reword-not-wire direction recorded in DECISIONS.md. Assisted-by: Claude:claude-opus-5 --- .abcd/README.md | 6 ++++-- .abcd/development/README.md | 7 ++++--- .../development/brief/01-product/02-context.md | 4 ++-- .../brief/02-constraints/01-platform.md | 2 +- .../brief/05-internals/03-configuration.md | 2 +- .../brief/glossary/distribution/release.md | 5 +++-- .../development/roadmap/phases/phase-1-ahoy.md | 5 +++-- .abcd/work/CONTEXT.md | 5 ++++- .abcd/work/DECISIONS.md | 18 ++++++++++++++++++ ...ips-claim-survives-in-context-and-agents.md | 2 ++ AGENTS.md | 9 ++++++--- CHANGELOG.md | 15 +++++++++++++++ internal/adapter/scanner/network.go | 2 +- 13 files changed, 64 insertions(+), 18 deletions(-) rename .abcd/work/issues/{open => resolved}/iss-183-abcd-never-ships-claim-survives-in-context-and-agents.md (75%) diff --git a/.abcd/README.md b/.abcd/README.md index 0b4535d3..3d7f5c65 100644 --- a/.abcd/README.md +++ b/.abcd/README.md @@ -1,8 +1,10 @@ # .abcd/ abcd's development namespace. Everything here is dev material — it stays in the -repo (transparent) but is excluded from the release artifact. `docs/` (not here) -holds user-facing documentation and is the only dev-adjacent tree that ships. +repo (transparent) and is present in every repository checkout, marketplace +installs and release source archives included, but never in the released +binaries. `docs/` (not here) holds user-facing documentation and is the only +dev-adjacent tree the release artifact carries. Three tiers, on two axes (durability × sharing): diff --git a/.abcd/development/README.md b/.abcd/development/README.md index cbb5a9c3..318e3167 100644 --- a/.abcd/development/README.md +++ b/.abcd/development/README.md @@ -1,9 +1,10 @@ # Development record The abcd design record — the durable "what / why" the build works from. Kept in the -repo (transparent) but excluded from the release artifact; user-facing docs live -under [`../../docs/`](../../docs/). Organised **flat by artefact type**, one -canonical home per concept: +repo (transparent) and present in every repository checkout, marketplace installs +and release source archives included, but never in the released binaries; +user-facing docs live under [`../../docs/`](../../docs/). Organised **flat by +artefact type**, one canonical home per concept: | Folder | What it holds | |--------|---------------| diff --git a/.abcd/development/brief/01-product/02-context.md b/.abcd/development/brief/01-product/02-context.md index 21a6dde7..485fbd60 100644 --- a/.abcd/development/brief/01-product/02-context.md +++ b/.abcd/development/brief/01-product/02-context.md @@ -7,7 +7,7 @@ abcd ships these user-facing commands: - **`/abcd:ahoy install`** — install / update abcd in any project (bootstraps configuration, gitignore, marker blocks, PATH symlink). Bare `/abcd:ahoy` shows status+help. - **`/abcd:disembark to `** — *pack* a lifeboat by **reading** `` — any repository, including one abcd has never touched — and writing the artefact **out-of-tree** to the operator-chosen ``. The source is never written to; the destination must be absent, an empty directory, or one carrying a parseable `_provenance.json` ([adr-35](../../decisions/adrs/0035-lifeboat-as-coverage-experiment.md)). Bare `/abcd:disembark` shows status+help; `probe ` and `dry-run` sub-verbs preview without writing — `probe` reports **coverage** (which brief sections a repository can ground, and which come back blank). - **`/abcd:embark from `** — *unpack* the lifeboat at `` (wherever a disembark wrote it) into a (typically empty) target project. Bare `/abcd:embark` shows status+help; `scan` and `probe ` sub-verbs discover/inspect without unpacking. -- **`/abcd:launch ship`** — cut a curated release from the single repo (`.abcd/**` excluded from the artifact by packaging), scrub for PII/secrets, stamp the version, update the marketplace entry. Bare `/abcd:launch` shows status+help; `dry-run` sub-verb runs the full pre-flight gate suite without writing the release artifact. +- **`/abcd:launch ship`** — cut a curated release from the single repo (the packaging filter denies `.abcd/**`, so the released binaries do not carry it), scrub for PII/secrets, stamp the version, update the marketplace entry. Bare `/abcd:launch` shows status+help; `dry-run` sub-verb runs the full pre-flight gate suite without writing the release artifact. - **`/abcd:intent`** — bare quoted `/abcd:intent ""` is the canonical create (spc-30/itd-46), plus the `plan` / `ready` / `review` / `link` sub-verbs that ship (alongside the deprecated `new` alias), with `refine` / `grill` / `ship` / `consistency` / `shape` / `reclassify` remaining design targets (`consistency` per itd-48, which superseded itd-31). There is no plain `list` sub-verb — it is folded into the bare render per SD001. Manages **intents** (press-release-format intent docs at `.abcd/development/intents/{drafts,planned,shipped,disciplines,superseded}/`). `plan` promotes an intent to `planned/` and plans the work as a spec on the native spec store ([adr-26](../../decisions/adrs/0026-native-spec-layer-ccpm-backend.md); the companion harness `ccpm` as the deeper backend); `ship` drives that spec to completion (or the full pipeline if from drafts/); a spec-close hook reconciles standalone/bundle intents planned → shipped automatically on a successful close (spc-28 `intent_lifecycle.reconcile`); disciplines move from drafts/ to disciplines/ on plan and stay there. Bare `/abcd:intent` shows status+help. - **`/abcd:capture`** — capture / list / promote / resolve / wontfix issues (the structured `.abcd/work/issues/` ledger). Issues live at `.abcd/work/issues/{open,resolved,wontfix}/iss-N-.md`. See itd-4. The cross-corpus synthesist (`/abcd:dredge`) comes in a later phase as itd-25. - **`/abcd:memory`** — curate a queryable knowledge substrate (`ingest` external sources / `ask` queries / `lint` health-checks) from specs, ADRs, reviews, and memory. See itd-36 and [`05-internals/07-memory.md`](../05-internals/07-memory.md). @@ -42,7 +42,7 @@ Lifeboats are portable directories; share by copy/tar/git, not by global archive **Repo:** -- abcd lives in **one repository** ([adr-28](../../decisions/adrs/0028-single-repo-curated-release.md)) — this directory. The Go binary, its user documentation, and the design record share one tree; `.abcd/**` stays in-tree but is excluded from the curated release artifact by packaging. `/abcd:launch ship` cuts that release from this repo, and the repo is the marketplace. There is no dev→public mirror. `abcdSubZero/` (an earlier CLI) is skimmed in Phase 0 for patterns to learn from — reference only, not a port target. +- abcd lives in **one repository** ([adr-28](../../decisions/adrs/0028-single-repo-curated-release.md)) — this directory. The Go binary, its user documentation, and the design record share one tree; `.abcd/**` stays in-tree and is present in every repository checkout — marketplace installs and release source archives included — never in the released binaries. `/abcd:launch ship` cuts that release from this repo, and the repo is the marketplace. There is no dev→public mirror. `abcdSubZero/` (an earlier CLI) is skimmed in Phase 0 for patterns to learn from — reference only, not a port target. **Validation corpus:** user-maintained list in `.abcd/corpus.json`, seeded with: diff --git a/.abcd/development/brief/02-constraints/01-platform.md b/.abcd/development/brief/02-constraints/01-platform.md index 9e0b6561..e7850fef 100644 --- a/.abcd/development/brief/02-constraints/01-platform.md +++ b/.abcd/development/brief/02-constraints/01-platform.md @@ -6,7 +6,7 @@ This file holds locked decisions about *where* abcd runs and *how it ships*. The abcd lives in **one repository** and ships a **curated release artifact** cut from it — there is no dev→public mirror ([adr-28](../../decisions/adrs/0028-single-repo-curated-release.md)). The Go binary is the product ([adr-21](../../decisions/adrs/0021-rebuild-in-go.md)); its source, its user-facing documentation, and the design record all share this one tree. The design record (this brief, the roadmap, intents, ADRs, research) lives in-tree at `.abcd/development/`; shared working material is committed under `.abcd/work/`, and `.abcd/.work.local/` is the gitignored local-only surface. See [`../../../../CLAUDE.md`](../../../../CLAUDE.md) for the canonical "where things live" map. -**`.abcd/**` stays in-tree but is excluded from the release artifact by packaging** — exclusion is a build-time filter over the one tree, not a copy between two repos. `/abcd:launch` cuts a curated GitHub Release from this repo; **the repo is the marketplace**, so discovery, install, and the design record share one location. +**`.abcd/**` stays in-tree and is present in every repository checkout — marketplace installs and release source archives included — never in the released binaries** — exclusion is a build-time filter over the one tree, not a copy between two repos; the launch bundler implements it as a structural namespace deny, which no cut release has run yet. `/abcd:launch` cuts a curated GitHub Release from this repo; **the repo is the marketplace**, so discovery, install, and the design record share one location. ## Front doors diff --git a/.abcd/development/brief/05-internals/03-configuration.md b/.abcd/development/brief/05-internals/03-configuration.md index 28f3d3b7..b55e47ea 100644 --- a/.abcd/development/brief/05-internals/03-configuration.md +++ b/.abcd/development/brief/05-internals/03-configuration.md @@ -206,7 +206,7 @@ Because the lifeboat lands out-of-tree, `embark` reads it from wherever disembar | Tier | Path | Committed? | Holds | |---|---|---|---| -| **record** | `.abcd/development/` | committed — excluded from the release artefact by packaging | the durable design record: brief, roadmap, intents, ADRs, research | +| **record** | `.abcd/development/` | committed — in every repository checkout, never in the released binaries | the durable design record: brief, roadmap, intents, ADRs, research | | **shared work** | `.abcd/work/` | committed | shared working files — `CONTEXT.md` + `DECISIONS.md` | | **local ephemeral** | `.abcd/.work.local/` | gitignored | machine-local scratch — `NEXT.md`, `scratch/`, `logs/` | diff --git a/.abcd/development/brief/glossary/distribution/release.md b/.abcd/development/brief/glossary/distribution/release.md index 8fc36cc6..9a9a05ba 100644 --- a/.abcd/development/brief/glossary/distribution/release.md +++ b/.abcd/development/brief/glossary/distribution/release.md @@ -17,8 +17,9 @@ versions: null A **release** is a published, version-tagged snapshot of abcd — both the act of cutting a curated release from the single repo ([adr-28](../../../decisions/adrs/0028-single-repo-curated-release.md)) and the -resulting artefact, a GitHub Release with `.abcd/**` excluded by packaging, -carrying a [version](version.md), a changelog entry, and a git tag. +resulting artefact, a GitHub Release whose published binaries do not carry +`.abcd/**` (the packaging filter's structural deny, which no cut release has +run yet), carrying a [version](version.md), a changelog entry, and a git tag. As with [version](version.md), [phase](../core/phase.md) forbids "release" as a synonym *in the core context* — abcd does not organise development by releases. diff --git a/.abcd/development/roadmap/phases/phase-1-ahoy.md b/.abcd/development/roadmap/phases/phase-1-ahoy.md index 25a42722..30ea711d 100644 --- a/.abcd/development/roadmap/phases/phase-1-ahoy.md +++ b/.abcd/development/roadmap/phases/phase-1-ahoy.md @@ -8,8 +8,9 @@ classified (managed-repo / unmanaged-repo / unmanaged-folder), registered in the history store's `~/.abcd/history/index.json`, given its CLAUDE.md marker block, and wired with the modular rules loader; re-running is idempotent. `/abcd:launch` cuts a **curated single-repo release** — a release artifact built from the one repository, with -`.abcd/**` excluded by packaging so the design record never ships in the -artifact (per [adr-28](../../decisions/adrs/0028-single-repo-curated-release.md)). +the packaging filter denying `.abcd/**` so the design record is not carried by +the released binaries (per +[adr-28](../../decisions/adrs/0028-single-repo-curated-release.md)). There is no separate public repository to promote into: the repo *is* the marketplace, and launch is the packaging-and-scrub step that produces the distributable. diff --git a/.abcd/work/CONTEXT.md b/.abcd/work/CONTEXT.md index 70e54421..215bf89b 100644 --- a/.abcd/work/CONTEXT.md +++ b/.abcd/work/CONTEXT.md @@ -39,5 +39,8 @@ Python reference implementation. manifest and tiered by release impact), which runs at a release, not continuously. So a brief sentence about behaviour can be wrong between releases. -- Single repo, curated release (no dev→public mirror). `.abcd/**` never ships. +- Single repo, curated release (no dev→public mirror). `.abcd/**` is in every + repository checkout — marketplace installs and release source archives + included — and never in the released binaries. The launch bundler denies the + namespace structurally, but that filter has not yet run on a cut release. - Never commit/push without the maintainer asking; new deps need sign-off. diff --git a/.abcd/work/DECISIONS.md b/.abcd/work/DECISIONS.md index 3c7d9f6b..c4e2ff80 100644 --- a/.abcd/work/DECISIONS.md +++ b/.abcd/work/DECISIONS.md @@ -956,3 +956,21 @@ parallel-agent merge contention bites. Repro: `internal/core/rules/rules_test.go`, `TestMergeNilBaseDomainsAddsNewKeys`, watched failing on pre-fix code for the claimed reason (panic: assignment to entry in nil map) and passing after. +- 2026-08-06 — iss-183: of the two fix directions the issue offered, REWORD is + taken and wiring is not. The descriptive instances now carry the + channel-truthful phrasing iss-43 established in the README — `.abcd/**` is + present in every repository checkout, marketplace installs and release source + archives included, and never in the released binaries — with the launch + bundler named as the implemented structural namespace deny that no cut release + has yet run, rather than as an operating packaging filter. Wiring the launch + publish path so the deny actually runs on a real release stays open feature + work with its own design questions (the marketplace manifest schema has no + per-path exclusion, and `release.yml` uploads the binaries without invoking the + verb), and is deliberately not assumed by this wording. Two candidate sites are + classified exempt on genre rather than reworded: `01-press-release.md`, which + states the intended product in press-release voice throughout, and + `04-surfaces/04-launch.md`, whose mention sits inside its explicit "full-cut + design" framing and is already truthful. One instance the issue body's list + missed surfaced only under a case-insensitive re-enumeration — AGENTS.md's + working-tree-layout line, capitalised "Excluded from the release artifact" — + which is why the closing sweep runs the three phrases with `-i`. diff --git a/.abcd/work/issues/open/iss-183-abcd-never-ships-claim-survives-in-context-and-agents.md b/.abcd/work/issues/resolved/iss-183-abcd-never-ships-claim-survives-in-context-and-agents.md similarity index 75% rename from .abcd/work/issues/open/iss-183-abcd-never-ships-claim-survives-in-context-and-agents.md rename to .abcd/work/issues/resolved/iss-183-abcd-never-ships-claim-survives-in-context-and-agents.md index 4034c01d..1e96b90e 100644 --- a/.abcd/work/issues/open/iss-183-abcd-never-ships-claim-survives-in-context-and-agents.md +++ b/.abcd/work/issues/resolved/iss-183-abcd-never-ships-claim-survives-in-context-and-agents.md @@ -7,6 +7,8 @@ category: "documentation" source: "impl-review" found_during: "2026-08-05 iss-43 review" found_at: ".abcd/work/CONTEXT.md" +resolution: "Reword direction taken, not wiring: the descriptive instances now carry the channel-truthful phrasing the README adopted under iss-43 — `.abcd/**` is present in every repository checkout, marketplace installs and release source archives included, and never in the released binaries — with the launch bundler named as the implemented structural deny that no cut release has run. Reworded: .abcd/work/CONTEXT.md sharp-edges bullet, AGENTS.md (the boundaries bullet and, found by a case-insensitive re-enumeration the issue body's list missed, the working-tree-layout line), .abcd/README.md, .abcd/development/README.md, brief/02-constraints/01-platform.md, brief/05-internals/03-configuration.md record row, brief/01-product/02-context.md (both instances), brief/glossary/distribution/release.md, roadmap/phases/phase-1-ahoy.md, and the internal/adapter/scanner/network.go persona-registry comment. Classified exempt and left: brief/01-product/01-press-release.md, whose genre is the intended product stated in press-release voice (its unshipped claims stand unqualified throughout, so singling this one out would be inconsistent); brief/04-surfaces/04-launch.md, whose mention sits inside explicit 'The full-cut design' framing and is already truthful; plus the pre-declared exempt set — adr-0028, the dated plans, planned/shipped intent bodies, 03-mental-model.md and principles/script-first-mvp.md (different 'ships' claims), and launch/bundle_test.go (describes the deny mechanism itself). Wiring the launch publish path so the filter runs on a real release stays open feature work." +impact: fix --- The blanket `.abcd/` exclusion claim that iss-43 corrected in the README survives across the record. Recorded rather than fixed there, because the disposition scoped iss-43 to one README line. diff --git a/AGENTS.md b/AGENTS.md index 7f89612d..d62e5710 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -84,7 +84,7 @@ smoke harness (`make smoke`). Development material lives under `.abcd/`; `docs/` is user-facing only. - `.abcd/development/` — **durable record** (committed): brief, intents, ADRs, - plans, research. Excluded from the release artifact. + plans, research. In every repository checkout; not in the released binaries. - `.abcd/work/` — **shared working** (committed): `CONTEXT.md` (current orientation) and `DECISIONS.md` (append-only decision log; architecture-shaping decisions graduate to ADRs under `.abcd/development/decisions/adrs/`). @@ -109,8 +109,11 @@ irreversible; guessing downward costs nothing.** plugin markdown surface and demonstrably executes there — no dead scaffolding. - **Host-delegated by default.** LLM review/agent work is delegated to the host; native/CLI/API/MCP oracles are opt-in adapters. -- **Single repo, curated release.** `.abcd/**` stays in-tree but is excluded from - the release artifact by packaging; the repo is the plugin marketplace. +- **Single repo, curated release.** `.abcd/**` stays in-tree and is present in + every repository checkout — marketplace installs and release source archives + included — never in the released binaries; the launch bundler denies the + namespace structurally, though that filter has yet to run on a cut release. + The repo is the plugin marketplace. - **Never commit or push without being asked.** Substantive work goes on a branch and PR; new dependencies need explicit sign-off before `go get`. diff --git a/CHANGELOG.md b/CHANGELOG.md index fae34eb1..31d3b642 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,21 @@ called out in a **Breaking** section. reviews-charter and smoke jobs. All three now state what actually runs. Comment-only — no recipe, hook logic, workflow step, or gate behaviour moves. +- **The record describes the `.abcd/**` exclusion by the channel it is true of** + (iss-183). The blanket present-tense claim — `.abcd/**` "never ships", or is + "excluded from the release artifact by packaging" — survived across + `CONTEXT.md`, `AGENTS.md`, both `.abcd/` READMEs, four brief sections, the + release glossary term, the Phase 1 expectation and a scanner code comment, + after the README alone was corrected. The exclusion is implemented but has + never run on a release: the launch bundler denies the `.abcd` namespace + structurally, while a marketplace install takes the repository root and GitHub + attaches an auto-generated source archive to every release, so only the + released binaries omit the directory. Each descriptive instance now says so — + present in every repository checkout, marketplace installs and release source + archives included, never in the released binaries — and names the bundler as + the implemented mechanism it is. Decision records, dated plans and intent + bodies keep their original wording. + - **Merging a rule-set overlay onto a base that declares no domains no longer panics** (iss-187). `rules.Merge` promises that new domain keys are added, but it wrote them into a map it never allocated when the base carried no domains of diff --git a/internal/adapter/scanner/network.go b/internal/adapter/scanner/network.go index 8e91587e..462f7ba9 100644 --- a/internal/adapter/scanner/network.go +++ b/internal/adapter/scanner/network.go @@ -114,7 +114,7 @@ var ( // (.abcd/development/personas.json). A device name derived from a persona is a // fixture host by construction, so it is allowed. The list is embedded rather // than read at run time because the registry lives under .abcd/development/, -// which is excluded from the released artifact. +// which the released binaries do not carry. var personaNames = map[string]bool{ "alice": true, "bob": true, "carol": true, "dave": true, "eve": true, "frank": true, "grace": true, "henry": true, "iris": true, "jack": true, From 77d4ee08ec18fd79188850eb506dbe97abdc5329 Mon Sep 17 00:00:00 2001 From: REPPL <77722411+REPPL@users.noreply.github.com> Date: Thu, 6 Aug 2026 17:10:14 +0000 Subject: [PATCH 3/6] docs: record the 2026-08-06 attribution-epoch history rewrite One dated DECISIONS.md entry: attribution normalised across the full history with trees byte-identical, and pre-rewrite SHA citations in the record declared historical rather than resolvable. Assisted-by: Claude:claude-opus-5 --- .abcd/work/DECISIONS.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.abcd/work/DECISIONS.md b/.abcd/work/DECISIONS.md index c4e2ff80..96d84aab 100644 --- a/.abcd/work/DECISIONS.md +++ b/.abcd/work/DECISIONS.md @@ -974,3 +974,15 @@ parallel-agent merge contention bites. missed surfaced only under a case-insensitive re-enumeration — AGENTS.md's working-tree-layout line, capitalised "Excluded from the release artifact" — which is why the closing sweep runs the three phrases with `-i`. +- 2026-08-06 — attribution epoch: the full git history (main, all release + tags, and the open work branch) is rewritten to normalise commit + attribution — AI-tool author/committer identities and two misconfigured + machine-local identities all map to the maintainer's account, AI + co-author trailers are removed, and every commit that had AI involvement + carries an `Assisted-by` trailer (the disclosure convention; added where + missing). Every rewritten commit's tree is byte-identical to its + predecessor — content is untouched; only hashes and attribution change. + Consequence for the record: any commit SHA cited in records, receipts, + or issue threads dated before 2026-08-06 refers to the pre-rewrite + history and no longer resolves from a current checkout; treat those + citations as historical, keyed to the old epoch. From 5f7f9d20cb13ccb445c0de55e5f46deee1861a02 Mon Sep 17 00:00:00 2001 From: REPPL <77722411+REPPL@users.noreply.github.com> Date: Thu, 6 Aug 2026 17:22:48 +0000 Subject: [PATCH 4/6] =?UTF-8?q?chore:=20capture=20iss-193=20=E2=80=94=20at?= =?UTF-8?q?tribution-identity=20enforcement=20for=20managed=20repos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Assisted-by: Claude:claude-opus-5 --- ...dentity-enforcement-belongs-in-abcd-for-every-m.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .abcd/work/issues/open/iss-193-attribution-identity-enforcement-belongs-in-abcd-for-every-m.md diff --git a/.abcd/work/issues/open/iss-193-attribution-identity-enforcement-belongs-in-abcd-for-every-m.md b/.abcd/work/issues/open/iss-193-attribution-identity-enforcement-belongs-in-abcd-for-every-m.md new file mode 100644 index 00000000..4dbab47f --- /dev/null +++ b/.abcd/work/issues/open/iss-193-attribution-identity-enforcement-belongs-in-abcd-for-every-m.md @@ -0,0 +1,11 @@ +--- +schema_version: 1 +id: "iss-193" +slug: "attribution-identity-enforcement-belongs-in-abcd-for-every-m" +severity: "minor" +category: "observation" +source: "user-observation" +found_during: "manual-capture" +--- + +Attribution-identity enforcement belongs in abcd for every managed repo: today's incident (2026-08-06, this repo's own history rewrite) showed autonomous harness runs committing as an AI author identity and squash-merges accreting AI co-author trailers, falsifying the contributor graph the Assisted-by convention exists to protect. abcd should prevent the class, not each repo by hand: ahoy install pins the maintainer's git identity (author/committer) into the managed repo config, and a managed gate (pre-commit/pre-push and CI) rejects commits whose author/committer is outside the repo's identity allowlist or that carry an AI Co-authored-by trailer, with Assisted-by as the one sanctioned disclosure channel. Likely intent-scale (user-facing capability across managed repos); relates to iss-84 (managed pre-commit gates), iss-85 (managed attribution config) and iss-119 (Assisted-by declared but unenforced) — reconcile with all three rather than duplicating them. \ No newline at end of file From c4f9ca6749b65098b31b9d22b9c9e7cfefa834c0 Mon Sep 17 00:00:00 2001 From: REPPL <77722411+REPPL@users.noreply.github.com> Date: Fri, 7 Aug 2026 14:27:24 +0000 Subject: [PATCH 5/6] docs: scope iss-193 to identity pinning, per the maintainer disposition The captured entry claimed a broader enforcement surface (author allowlists, AI co-author rejection, push gates). The 2026-08-06 disposition narrows abcd's job to one thing: a managed repo commits under the user's own identity, and git cannot fabricate a substitute from the host. The trailer and allowlist halves stay with the forge ruleset and iss-119. Assisted-by: Claude:claude-opus-5 --- ...enforcement-belongs-in-abcd-for-every-m.md | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/.abcd/work/issues/open/iss-193-attribution-identity-enforcement-belongs-in-abcd-for-every-m.md b/.abcd/work/issues/open/iss-193-attribution-identity-enforcement-belongs-in-abcd-for-every-m.md index 4dbab47f..186967e3 100644 --- a/.abcd/work/issues/open/iss-193-attribution-identity-enforcement-belongs-in-abcd-for-every-m.md +++ b/.abcd/work/issues/open/iss-193-attribution-identity-enforcement-belongs-in-abcd-for-every-m.md @@ -2,10 +2,55 @@ schema_version: 1 id: "iss-193" slug: "attribution-identity-enforcement-belongs-in-abcd-for-every-m" -severity: "minor" -category: "observation" +severity: "major" +category: "process" source: "user-observation" found_during: "manual-capture" --- -Attribution-identity enforcement belongs in abcd for every managed repo: today's incident (2026-08-06, this repo's own history rewrite) showed autonomous harness runs committing as an AI author identity and squash-merges accreting AI co-author trailers, falsifying the contributor graph the Assisted-by convention exists to protect. abcd should prevent the class, not each repo by hand: ahoy install pins the maintainer's git identity (author/committer) into the managed repo config, and a managed gate (pre-commit/pre-push and CI) rejects commits whose author/committer is outside the repo's identity allowlist or that carry an AI Co-authored-by trailer, with Assisted-by as the one sanctioned disclosure channel. Likely intent-scale (user-facing capability across managed repos); relates to iss-84 (managed pre-commit gates), iss-85 (managed attribution config) and iss-119 (Assisted-by declared but unenforced) — reconcile with all three rather than duplicating them. \ No newline at end of file +A managed repo commits under whatever identity git happens to resolve, and when +`user.email` is unset git **invents one** — the OS account's full name plus +`$USER@$(hostname)`, silently, on the first commit. This repo's own history +carried 25 such commits before the 2026-08-06 rewrite, all authored and +committed under a fabricated `@.local` pair no one ever typed. The +same gap let autonomous harness runs commit under a tool identity: nothing in a +managed repo declares who its commits belong to, so every machine and every +harness answers the question differently. + +**Scope, settled by the maintainer (2026-08-06):** abcd enforces exactly one +thing — that a managed repo commits under the user's own GitHub identity, and +that git can never fabricate a substitute. Nothing more. Rejecting AI +co-author trailers, allowlisting authors, and gating pushes on trailer +presence are **out of scope here**: those belong to the forge's own rules +(a server-side ruleset) and to iss-119, not to abcd. + +What that means concretely: + +- **`ahoy install` pins the identity.** It resolves the user's canonical GitHub + name and email (the account's no-reply address is the safe default — it is + what the forge already attributes to them, and it leaks no personal mailbox) + and writes both into the managed repo's local git config. Repo-local, not + global: abcd configures the repos it manages and leaves the rest of the + machine alone. +- **Fabrication is disabled, not merely overridden.** The repo also sets + `user.useConfigOnly`, so a checkout whose identity is missing or cleared + fails the commit with an error instead of quietly deriving one from the host. + A refusal is recoverable; a fabricated commit is already in the history. +- **The state is observable.** A managed repo whose identity is unset, or set + to something the install did not pin, is reported — the same fail-loud + posture the guard and audit rules take, so the gap surfaces before a commit + rather than after a rewrite. + +The privacy half matters as much as the attribution half: an auto-derived +identity embeds the machine's hostname in every commit it touches +(`alice@alice-laptop.local` in the persona shape), which is the same +never-commit-hostnames class the v0.5.0 security half closes in scanning and +redaction. Prevention at the commit boundary is where that leak is cheapest to +stop — the scanner can only find it once it is already written. + +Likely intent-scale: a user-facing capability across every managed repo, so it +wants an intent and a spec rather than a bare fix. Reconcile with, rather than +duplicate, iss-84 (managed pre-commit gates — the hook seam this would use), +iss-85 (managed attribution config — the nearest neighbour; check whether this +supersedes it or lands inside it) and iss-119 (`Assisted-by` declared but +unenforced — the trailer half, deliberately left out of this scope). From d28d5d5527d97a4d735700f44db1da630ba8dd96 Mon Sep 17 00:00:00 2001 From: REPPL <77722411+REPPL@users.noreply.github.com> Date: Fri, 7 Aug 2026 14:32:20 +0000 Subject: [PATCH 6/6] docs: add the attribution-rewrite commit-id translation tables Pre-rewrite commit ids cited in records, receipts and issue threads no longer resolve in a checkout. The two tables translate them, so an old citation stays readable rather than becoming a dead end. Assisted-by: Claude:claude-opus-5 --- .../attribution-rewrite-2026-08-06/README.md | 32 + .../sha-map-old-to-new.tsv | 726 ++++++++++++++++++ .../tag-map-old-to-new.tsv | 7 + 3 files changed, 765 insertions(+) create mode 100644 .abcd/work/attribution-rewrite-2026-08-06/README.md create mode 100644 .abcd/work/attribution-rewrite-2026-08-06/sha-map-old-to-new.tsv create mode 100644 .abcd/work/attribution-rewrite-2026-08-06/tag-map-old-to-new.tsv diff --git a/.abcd/work/attribution-rewrite-2026-08-06/README.md b/.abcd/work/attribution-rewrite-2026-08-06/README.md new file mode 100644 index 00000000..68bd890d --- /dev/null +++ b/.abcd/work/attribution-rewrite-2026-08-06/README.md @@ -0,0 +1,32 @@ +# Attribution rewrite, 2026-08-06 — commit-id translation + +On 2026-08-06 the repository's full history was rewritten to normalise commit +attribution: an AI-tool identity and two machine-derived identities (one of them +an identity git had auto-derived from the host, never typed by anyone) were +mapped onto the maintainer's account, AI co-author trailers were removed, and +the `Assisted-by` disclosure trailer was added wherever it was missing. Every +commit tree came through byte-identical — no file content changed, only +attribution metadata and, consequently, every commit id. + +`.abcd/work/DECISIONS.md` carries the dated entry that declares the boundary. + +## What this directory is for + +Records, receipts, and issue threads written before that date cite commit ids +from the old history. Those ids no longer resolve in a checkout. The tables here +translate them, so an old citation stays readable instead of becoming a dead end: + +- `sha-map-old-to-new.tsv` — every commit on the default branch: old id, new id, + subject. 725 rows, validated position-by-position against tree and subject. +- `tag-map-old-to-new.tsv` — the six release tags, with the commit each pointed + at before and after. + +To translate an id, match it as a prefix: + +```sh +grep ^3377980 .abcd/work/attribution-rewrite-2026-08-06/sha-map-old-to-new.tsv +``` + +Both tables are historical and complete. Nothing appends to them: they describe +one event, and a second rewrite would need its own directory rather than +extending these. diff --git a/.abcd/work/attribution-rewrite-2026-08-06/sha-map-old-to-new.tsv b/.abcd/work/attribution-rewrite-2026-08-06/sha-map-old-to-new.tsv new file mode 100644 index 00000000..4edba6b3 --- /dev/null +++ b/.abcd/work/attribution-rewrite-2026-08-06/sha-map-old-to-new.tsv @@ -0,0 +1,726 @@ +old_sha new_sha subject +85573f396f09b71eee0e8848bdbddb54ec87c2fc 488a0aa96ac5de805348635b27036addf15cddc2 Initial commit +862485494be1f03cee6c1baa41fd7dcb36e7363c 27b600b1468fb6af337d1b80338644790545f14f feat: scaffold abcd-cli — Go rebuild foundation +70f795dce5dee68695fea7ab693fb6f7794cc69b 5a0aa2c69a95e245c6f9e592e063747ac8ed6032 ci: run gitleaks and zizmor as pinned CLI steps +091dbcaa9a7339c4e39cf0abef4ed294b20e3e76 6ceb39ac2d98df3e3b7701c98853616a4827ed5d ci: pin zizmor image by digest +246ce00398a2f76561b89b780fe15e4e741abfa6 9cd59304f10cf2bd5d40800f2d4d21dd1ea729ee Merge pull request #1 from REPPL/chore/phase-0-scaffold +20e15ea2e22c7e84c91ae40e8972dcc7b4fa3914 157e3ac1f76a4dc57e053bcd9406bb53fd2d91a7 refactor: restructure design record into flat artefact-type folders +4defad67bf6928930a7a0c45d371f90435dad05b 2ceab9cbe1273c95afa034b2ef7ad43592154cf9 Merge pull request #2 from REPPL/refactor/phase-0.5a-record-structure +29a7f7880adbf0e3200accbcd6f4cd9c45ed5b25 ad25573e3717686bca8ec7829e58d32bc0b0db34 chore: add local branch-protection guard to pre-push hook +aedd123e0fb9b272194c4d2514a8b720e9db6ec3 3fa9acf47077ea0054b9ef7e33fe75128d6096b1 Merge pull request #3 from REPPL/chore/pre-push-branch-protection +9b4e1e5c41f0649278e99fbecaac232e50ff1d12 1fa14ded45371923f7af87763bebb3057c4ad621 docs(reviews): add plan-consistency review of .abcd/ and docs/ +737c02788c39c64da612e957917509f41606458d 7eb30b035f55a38e1fb226b824dd63e7df9e3c5b refactor: rename ADRs to 4-digit NNNN filenames +ca564f1c7dab16ca2d80cb6eafe35d5cfc8345e4 e54e4947e128b5310361eb91261fc2575dd93608 docs: reconcile decision record to the Go rebuild +89f8321b7bab27045f56d8b3226bef3edbc47b6b d968495a0f25f23fd0e138a2468fcae245cdf7d4 docs: reconcile brief to the Go rebuild +426be533a408b538aa7ce167d84a049a8cd329e1 2e57c8a26ee9473493277877456a75bfca425d5f docs: reconcile intents to the Go rebuild +87c81fc14d6a2e6ed35d22264c497bc3cb2c0311 5ae72d5847ff5076d8fc725559cc6498e9bc8d14 docs: reconcile roadmap to the Go rebuild +3ebf7dc119bfa05a078afa8af62143cc23c25e27 1451cc7e73d7d92f366dbe2c064c134268778a18 docs: promote Go-rebuild plan and record-IA SOTA note +c2e2a375afe0e09c8d747b22b9a0844cafbe9948 97fba95018c2f9e9c367291de2ec72f90aa24279 docs: resolve ADR cross-links to relocated intents +ae42e1ea52c6ea229c62a0e595c5ccdaa537d5a3 2dc4272d6f138077c261b0ead36ff2fff66e192f Merge pull request #4 from REPPL/refactor/phase-0.5b-record-reconciliation +9461ae184834c143784ce7f8290738418d3e541f ea0dc9b85618f61dd87519e37b5b46fe165f9a5b feat: enforce the reviews-folder charter deterministically (RD001-RD003) +87b42edd245ac5fa96cbafcd05446664e521aed8 ec03a65191ffe00d5f373759a490f16325412734 Merge pull request #5 from REPPL/feat/review-charter-lint +dcfd6799c9593ce354d6c72310a830542daa5acd 945d366103545f9498248f64fbb7b341805307ef docs: Phase 0.5 mechanical record hygiene (frontmatter, paths, dead links) (#6) +e0473032dab24ec367ff9e030518a56e5aa8aae6 50a3e2a9c44ea23f2a9bd1c503bd1808c0fbad2e docs: reconcile 12 surviving brief contradictions (F1–F12) (#7) +1751cf57eed2dd7c28b62ff4120e783a4e21bb94 221e7e291860724406ffd6195c58ce112ee78a8c docs: add READMEs for 16 uncovered record directories (#8) +ffa28d2b5a52c42d33a8b0780b5807e9c2a1e99b baf9b94998ef456114af9360024281e876f77a69 docs: collapse ahoy to repo-only; finish single-repo reconciliation (third wave) (#9) +f5c18a6a24939a28ec9fbf488681d708c8f0e4d6 011e837e6fd22807cdeb812ad2f21f8d43745a6e feat: record-lint deterministic drift gate (internal/core/lint) (#10) +7478e6a5d866c372719033f8395305d3df7e65d8 0b40b5c8bc0218b8aaddf345bdf5c5e2772b09e3 docs: prune historical artefacts from the design record (#11) +117f8a04fe1a17a7f4341b1a6a3ce9a6fb9cab70 7502426f69d7ff8bcee04f24b4933d30aabdb7a2 refactor: rename spec-id prefix fn- to spc- (retire flow-next) (#13) +8648309274ed9aaafccaf52fb632856d4c77b341 df9f2e7bda15e6b49c15f7b0583328c47693fb6d refactor: re-baseline the intent lifecycle to the Go build (#14) +08bffa2662f6936b5bd9a2c4ea7bfc9a76f8d82b e30e89c3de643ed5a0ebc0103c31f937c4492fc2 docs: reconcile terminology drift and arm the record-lint gate (#15) +a4cbc42b8e52bbab1d6328ce098f2e50a0f3c288 a597364ebf0ae085cf2ee3bc01eea149a69718a2 docs: add derived-versioning intent (itd-73) and ADR-31 (#16) +9a3d1263dc77b7b0c9dc04bebea4828bcf334b64 1894ab715933e2e7479b07d994eba70d6ddf30c6 feat: Phase 1 — abcd ahoy install + launch dry-run (Go) (#17) +b9fca093b61e4aa3fdaa84109789cd300957de3a e6f624044e9dfd73905ef49745930d11ca78385f docs: name the deterministic docs-currency lint layer in itd-60 (#18) +8801cd1dab149e0626c663043ec94cade8593d23 7f7f58cef89be98f39d24f45e5937715aa6f5250 feat: itd-60 layer 1 — deterministic docs-currency lint (#19) +91ed8e712fc6c08d44f57615483a543e3dffc6c5 5af8569c93e918b55210bc5ce5b04ae06489af42 docs: adopt abcd branding in the README (logo, comic, badges) (#20) +f4450334a3d53c5a510f29f6be853219479ff8ee 3474bcdc56a76826738435cc3363229419098ca8 feat: Phase 2 — native history store + capture ledger + memory (Go) (#21) +3e25923a3e7b639de0e7b9790f7d86a9f3ebac53 f29fc1a36ef6efdba1f6a6c28920935f331cd996 chore: add tag-triggered release workflow; cut v0.1.0 changelog (#22) +d77e69a5b3468b4eb29fd12ffec70af89f5eff3a a00f489643f40fe269f85625f1fa9eeb0b00946a Update README to remove plugin references (#23) +4bfc162f29260e15bc7f2d9396463a07a7e95e7d bebc422420333221149f53139ba5541062685903 docs: generalise host references to keep the surface harness-agnostic (#24) +c5772930346f6c04e594e3361c8021b0a0650262 b0a8dbbc32f8aa357d64e9b582ea8148ec3a41bf feat: harness-name prevention gate + name-banlist intent (itd-74) +4f067a6f923a1854e0e81d030a36a2c2f6c42acc 5fe371140193d9db67456264401910bf0067a5ef Merge pull request #1 from REPPL/feat/harness-name-prevention-gate +df70c609c2b9249b839526266c54722b040d70bf ba4f5ea5ceb41bbb4cdbac86e2e60efddb9dd17c feat: self-discovering CLI smoke harness (evals/) + eval intent (itd-75) +38b89466a9bd389bd4cc3357f8d6517c84bfdac0 bf9cce11ff9c6b20b407bb3f25cbd999cea18fed Merge pull request #2 from REPPL/feat/smoke-harness +b62859fd85d43c758622f8dd9bb1ed8a235bbe85 b4d63d900713e85b0f28e171f3d72f03ea1d224a docs: acknowledgements, AI-attribution policy, badge fix (#3) +4c4bf7f3994ecbcecbcf91653f49dfa9312aead3 20fa17f2b3abec949f8f321a7bbb08724e09a7c6 feat: dependency-aware capture ledger in the work tier (ADR-32) (#4) +be8ca371c991eca3842ac33d1f2f231ad85bee08 4fe330a73e2e9976d7da72261b459e97ebe437cf docs: drain the roadmap-consistency triage backlog (iss-1..iss-15) (#5) +87afbb64929c76b62b89627944b0f0071472cb31 37b0bc3899ef938828861cf7714dfee9d85f04e3 docs: sources provenance design + intent governance sweep (#6) +12f0c15f41e6034d4c41a22301e1c61222f3e14f 52cefbd17be83bdf86e334325657dbe6ed1c2d46 chore: capture intent-sweep follow-up anomalies as iss-16..iss-23 (#7) +895a78bef44a453ad1f84db839efa9943214cda1 12ac2b1cf9c3f92c4a8593eb0042f683b1aaf01b feat: persona_registry record-lint rule; promote personas principle to discipline itd-79 (#8) +fe4d1a0e6fef41d99bfe096e7189752c529c157e 5adbfe095ccabd00af37b81bccc55cf980335aa1 docs: adjudicate the intent-sweep anomaly queue (iss-16..iss-23) (#9) +3d9ffce90c0f1c05396190d0685d0e541dd11dca f371b3e1fb86d8e11a21f85472ff785795503ff9 docs: itd-62 references the originating assessment via the sources ledger +e483d53f0699548217c6a762c94db72ac4f905aa 2235243aa6d035f91d560af1efa9d94b1d7bb297 docs: credit ccpm's spec/task conventions in ACKNOWLEDGEMENTS +3c8e048760cf12953784ded5e0098238b59ba695 cf3411c52b8aa648764ab89000c0e6a3ffcf5740 chore: capture changelog-fragments seed as iss-24 +73245203c50dfb0875b1f2c820322b48cb1e11b6 a13ea2d13c7ddf5ceebda2d5b600ddd8ba7c6d3f chore: capture related_sources frontmatter seed as iss-25 +0a1cb806d45c71c80b098d416f7fec89be050a28 6584cf018de5d0ab41ca95001541cdb0da185109 chore: capture sources retrieval-seam seed as iss-26 +c6c4c3a921ba3d38a5c64fcbdc9ae889e428b9ef 226e6262d28253262c7d032974b687fca89b8ee0 docs: script-first-mvp principle; capture Go-absorption seed as iss-27 +57f70221a35cb116b0ff87142799dd4acd4907fb 38644546d457dd6be445b8e996dba939bde403a9 feat: /abcd:consult and /abcd:ingest skills over the sources corpus (#10) +a3ca6e7c8220da77fc14499e2efdc6d0027bcd31 6f2b492c3c1b2de6a784ee4a242c2e476f74f2c3 chore: capture hermetic-git test-env seed as iss-28 +b19da7a2370fe114bc59a64c4de11809c3f55e31 d59e7c3aaf7cb577d9fa2f5aa93ad400b2ba3d1b docs: record ten review-distilled principles +41a85ea83d1351382cc8f7d83af8efd6c3422dc4 e5ff108b912106e24ece30e649012a60fe0ba019 chore: capture 2026-07-08 review findings as detector-shaped issues iss-29..49 +97c4d376f7d3336beddbc43b4755da5a6099ff50 80a8f0d4a8805851252bd95c43eeaa66aceaa090 docs: research note distilling the 2026-07-08 multi-agent record review +67b7a6ecd5acc630c90ccdeb3a36896b036e7e5a d15831120d038fea3603e652e9595a92e343c99c docs: research note mapping the ten principles against 2026 SOTA +04400792b05486758275666fcb9e7dc6a6ac67a0 7bcb4f864a32d3083c024643cfdd1ad915add592 docs: record the independent oracle cross-check in the review note +4fbcd8638c6ce3ae09dca8185247846f3a216284 fc3c58ce952b9d1dc72288a178bbf7309d1bf384 docs: research note reviewing the lineage bibliography against the principles +567c48f77bf6b3ccaf45c1d941a85c77a5ad5bd2 9294e876f6c952a3b0aabea079f45b8af3902368 docs: correct one-canonical-primitive originality claim in SOTA mapping +a93bcdcaad171d44f8547eeed2029e605ca8e0b4 917c1a35e6abe94a96d20751d0f63da9e554522f docs: research note recording the practice/MVP/tool extraction run +0aaa4e184a01cc962c9a7311fb477768fb8263a0 e98b6a356cfbf3c8b664a4d3a0c82323f7b6ada0 docs: amend the promotion path into the canonical three-rung ladder +f4a4a260020dbb46300c310dae6bd7cd53c83bc7 3e49ed9fba139ede8e6daa3d1d7e06a00a1dbebb docs: record three verification-layer principles +39494f39125ad8f5cbe5f15da5740a578751128b 0e52bf2b60fe81d06a7c8cded9b7c1a10773acc8 docs: fold detector lifecycle and bidirectional proof into existing principles +7e6b661c297e272312fdcc9a61c0968822d8be58 76b51ce423c918a836236a808517b2bdbc7fbf88 chore: capture 2026-07-09 extraction seeds as iss-50..55 +7ffd2498c591cfddbe35c4fc2d3eb508c2d6a967 4a802ae3b213ec1ba8c1c021062a1aee3e82d472 chore: record 2026-07-10 session decisions +5fe810e4ae4d2115cbc8836de74422f3a125c26e e295318291add3809e5e90575ec2601a1412b85f chore: record CONTEXT status-free decision +2f3a60c315a3d57b6f64d2103ac8805bda657874 09b02f21100d0af87520ac26511d36310730456c feat: add prepare-this-repo skill (#11) +7946461082c0662665eba57f087589a11eb4b02c 355dee4181c238bf42ca434247a5b1068f2f4e28 chore: arm retired-name banlist in record-lint (iss-36) +b9b2e6a471432f0dd7c72868b20af7ac05cee677 61f60ee4b49657bd9d7319cc9c3c0454db175c23 chore: capture iss-56 and iss-57 from autonomous-run slice 1 +fae751b68d413fb271b677918a28076546b072e0 aa59c891d60e3a8befafac796cb59358503a1071 chore: capture iss-58 — history store bootstrap blocks transcript dogfood +0c2ced18c2ece2228cd4b95fbd4dc202e56d5b4f 76f4706d0fd8ec0657ee60b617a61f0c2716f39e chore: record iss-28 reproduction mechanism (GIT_DIR leak via hook context) +a494749c0617cef6bf178dcba70e043eeaea20f1 02325469c791a73f09e36eaa0de801fe9dccf9a1 chore: bump iss-28 to major — confirmed GIT_DIR leak can mutate the real repo +070c0dbf25df2b1a88400d0664990b9f64fe274e 75dc9273bcecd6228914c55c3d93e2f598adf264 docs: sweep retired names behind the armed record-lint bans (iss-36) +4837160340860492e5bf361b781679c2c000822c a926889f1706dd9cd0189205780cb904068ef6ab docs: fix review findings on the retired-name sweep (iss-36) +da8740e4c18b13a010cd472b46b97776a3b467cc cfd589b3ab76a246438a0d70474839800c316460 chore: resolve iss-36 — retired-name bans armed, corpus drained, review passed +f6c59374eec639e745925b7fb6dd907b10a3fd81 c2722d51d36cd9af056864ceb86243536490f326 chore: capture iss-59 — two-layer verification lesson from the iss-36 sweep +ae16ddde16beb8955277f87faa8ccf6e00df483e 58088d4be975907458019949e7bed88c028cc03a chore: capture iss-60 — agents must revert with the editor, never git +3e668bc09d16b01f5978388cfa2702061dec8224 e497eb4d4f8b4cbf8642d854fc3b7e7eeb0df194 chore: record iss-35 detector run — 150 brief-vs-surface discrepancies +cf924964df87de955213f2fbf8b7470185122ca5 3beaa62b87873691e997e0ddc5ee940e0804a14e docs: reconcile the five worst surface chapters with the shipped binary (iss-35 batch 1) +a861616104718678cf0482bd77a6c25adcd0e3f2 2dae1b0402b1aa6dbce5364583d9b72834440a1d chore: capture iss-61 — launch payload drops shipped skills +1bb9ec2e99945f0285c0bf23a8d4341e71b30067 e74cbc20870f33209fb8be73d8026e1e8d4d1c74 docs: reconcile the remaining six surface docs with the shipped binary (iss-35 batch 2) +162075174bac2bd96e0663987dacfdc094a48353 2293900d3da4d43ddf531d838d4b057538d99a8f chore: record iss-35 reconciliation batches 1 and 2 on the ledger +ec34c7426b14284c5e80d7ddec964a82131b42f6 d0b66e8bcb04d432988464e664262ba41fb27aed docs: fix the direction-A leftovers surfaced by the iss-35 detector re-run +e305052b457e28ebde3930c140d7a3664ecaac0f d35790b65d671cbfaa7c04421af4db4dce29a1a3 chore: record iss-35 detector re-run — 150 -> 24 ratchet, 13 leftovers fixed +68052aebd3dd0245eb9e969609ed6050534fd883 136ecaebf4079ea08aa4effb6f4a75e17c860236 docs: record iss-35 record-lint graduation as a design gate (STOP for sign-off) +1ce345d2e16b112a57c65b6430f86f688bf1c4b5 5f68fa4790558ff01385941dd376edd6735adebe chore: mark iss-35 graduation a design-STOP on the ledger +19aacbe921f110ac361d5345003d21fae11157fa 832bf2e96a7a44408a2a53e7cb09ac2993891940 docs: record iss-35 graduation sign-off (Option C; enumerate; reclassify) +a2047d7eb5b3df2b2863b5404e41b3b6232a2462 080b614c4d6b72c4db8b16e94708cee4058c4f83 docs: enumerate docs/history/version as user-facing surface chapters (iss-35) +dacf89b303141e43a287a37834050eff21c49d18 04a0cb7d508c40ab25300c49c28ae732802a0ac7 chore: capture iss-62 — managed-repo git-identity gate +1a1947da663e3c2441e2eb6442693877aefa3b36 8e6d6e39afe6df3f1d5d691ced1f54133e95c77c feat: add context_status_free record-lint rule, wired to CONTEXT.md (#12) +9244a8018cea05aaead9a2bd047419a297793357 86e129eef5e5d324b3cc26a9d7a27a03fb01d916 docs: reclassify consult/ingest/prepare-this-repo from skills to commands +740e8df816def73bcec9203db8713858b65055a3 953da1d89a77b9f873892005f87ec23598c276b4 feat: managed-repo git-identity gate (iss-62) (#13) +b76112b65fda26c5148dee42f32985cb5d49c7d5 8e5193caa0bb5c284f50d7e0b00a69993b4667a3 docs: CHANGELOG calls the three reclassified surfaces commands, not skills +d2a6f1e68b26a862a73f2f1c1b3ff64af603a4e9 c4bc5de4a103a6730a7fbffc91d05f6f7597f314 feat: surface_coverage record-lint rule (iss-35) (#14) +bc9e915b59150a7aaddaf3d1a6621f242857cbb5 369a045dbf22fc356cb215a2a1f31b1a31c5590d docs: prefer-sota principle + iss-35 semantic release-gate design (#15) +d58c81c998f07951cd227a0bb7aa65f72cbb0a94 676fc0ddcacbb072b06aff1316565dd6c3f35d0a feat: semantic release gate (iss-35 task 5, VSA, signed via A.1) (#16) +7675dfa4c90831dd7a64208ac0339f4e5f042ff4 f4bedb247c56ed08ed6e5712070ee827a43b682a docs: record itd-3 hook is Go, not Python (Go-only) (#17) +8a83a3749b618bdd510a7c25a4b0f05b3582a204 a0e27129b60c85c28131df1b7c43d35ca8ad8de4 docs: itd-3 rules-loader SOTA-verified design (design gate, awaiting sign-off) +2a5746ea8260e3d88335c13c61f1bbb69bf01a26 b4ad4e683025a8092519f6afc0f0572c063f5696 feat: itd-3 phase 1 — internal/core/rules loader core +6aa47484b2aefebc8312ec2fe5f4266dcbd6bdef 244398f341f5aa10955f45738074e572e387a42c feat: itd-3 phase 3 — abcd rules [domain] verb +c42d6bff2b9af36b0e6b5275634a8bed1d435085 d6cfeb671f6eb72d5eea7e56018a3a5ab2a6e262 feat: itd-3 phase 2 — prompt-router hook (trust boundary) +e22a6c51e457beceef391a6200e398cd1d60bca1 26359beffb12fe4ba0eebc79015f2399d6333c2c feat: itd-3 phase 4 — ahoy wiring (manifest + marker + verifier reconcile) +1ce39df47dbba48ac506a51a9d6a903b34525b88 a755f92af7fdf13b0625924abeb52e455f810f9c feat: itd-3 phase 5 — OPINIONS default domain (pointers, not copies) +1f173b10bcb26bd09c4ebe509aa4eb5151c21dce 5d639f061cc46529dc42d1bce2f6603c0ff04c6d fix: itd-3 wire force_refresh_every_n + address review findings +982988aac9ba98b99d963c1b3143aa9761003c78 a0cc55ac21a1cacc6a48939b24131bc70d96b828 docs: itd-3 rules-loader build learnings note +53e251fa050581e342a88447e39674142a44e0f8 a3d6bc60b7bab626bc7550edcfafd2c90d44271a feat: itd-3 implement deferred follow-ups (stemming, prune, .abcd guard) +052595793fedb064c82b646a8be5978aa132bc29 d399cb464d498ca28311205b3781e480fcc4b191 Merge pull request #18 from REPPL/auto/itd-3-rules-loader-design +b5f476d82050ebaad406767ba921da70eec56c6f e5fdf97c2762f570c031c2b5afe7ad5fceb761fe docs: ship itd-3 (manual fidelity audit + planned->shipped) +c395004033fd5c65b7e51b07f68d92e41054e6ea 31db06c853d51c03db9b68c244e81507b709b297 Merge pull request #19 from REPPL/auto/ship-itd-3 +3931dcf8979aa98cc6e5dfe81a6480c054253437 60519bac0ea6089b38a210405a7214dd545d8b27 docs: intent-lifecycle SOTA design plan + rules-seam follow-up (iss-64) +95964547642480c555d4a8177aab3a9a4482ba2c aaf183bafbfc69343cfea61a7d005e00d5693e10 Merge pull request #20 from REPPL/auto/intent-lifecycle-plan +3551a96a8d8cba720a384dde0f026bd4092321e5 89c443ca9608e1da90cd29973318d54c424c3074 docs: add sota-per-intent principle (#21) +9bc05874dc0af42a501bc279274e16723d07aeaa b70a40f2909c9a9f3b5bc183f9cdeec36e1343a5 feat: itd-80 intent-lifecycle slice 1 — native spec store + abcd intent/spec verbs (#22) +530e584b768f9aa0fbd3184baf4b746651a894d9 dfa39b15bbaf01478861d158a0dda2c19f3d651f docs: itd-80 SOTA declaration (dogfoods sota-per-intent) + run-learnings note (#23) +ecde679fc3b751acd6b8772cd263685cec56ab9b 385d32998652f8baf05229815a36515233e6b7cf docs: itd-29 refinement — pick up out-of-band merged PRs + SOTA declaration (#25) +2f740da287a654002f7c744be596bed0f936026f 7625616fb9d4d81c34dc26485b87b061525f8e48 feat: itd-80 phase 3 — reconcile on spec close + spec_lifecycle lint (#24) +058072db46b8d6eb57f4fbbf08bd8834f843ef1f 6491a1c1c8a212d138c7e8af3ebbe26c830d1115 feat: itd-80 phase 4 — host-delegated fidelity verdict ingest to Audit Notes (#26) +b1ade8cefa15c5785d57f00792dbc73d188e3853 026472a186ce3e322a233117b71b061255dbff92 docs: ship itd-80 through the intent-lifecycle pipeline (dogfood) (#27) +332a94c59d1eeb5e9b0e7b56e1667f7fe48e4b92 7bbb7568f3aa46c01365f3e9b7e9c6ff8015d16a chore: triage clean-slate hardening backlog (iss-65..72) (#28) +fcebbc75cacdbede4a9370c16f69d6888994d142 7b7dca3804061e17de835ed6f393017ce962e96a fix: bind release receipt-gate to its detector, fail-closed arming (iss-70) (#29) +5a496967d8a36ddadfdf8c0dde3fb5fbf9281595 89e9ca1d52e4588556ae3fd401ba87e3e9c966b9 fix: mask sibling secrets by byte span in serialized scan snippets (iss-65) (#30) +b30b1b566b148ea54b189d5b2c48a3eb0e4e5bee 83e4e99b545bbcbb620bfe107e8725194df0005a chore: resolve iss-65 and iss-70 in the ledger (PRs #29, #30 merged) (#31) +71196a0c5994d06e6ddaa42945dd07af7edf0aed 9e5569657658e87a86e71a9935966a8d2b778429 fix: serialize issue-ledger transitions + validate ForceID (iss-71) (#32) +f0f7f63c0fa2de4e023f15e9d95a125cb2a61e75 c83b2a1ced50a31343244aa7a557b40cbfddae16 fix: rules-loader guarded read + private session-state dir (iss-66) (#33) +79ca3e8acfc38dad09368052ad32bcbddcb5df84 340f4258e57372b5aa03aadfedee086398e0b63e fix: report IsGitRepo in worktrees and submodules (iss-72) (#34) +679d2ea2762eba8ab11e42b697403d93871718a4 7e607ad05ddc469da7f2da36c32da31418543859 fix: align intent Plan/ingest AC gate + clear audit placeholder (iss-67) (#35) +34fe6cfc93942b2e095f8e294146a2ca58d93ace 3110d439ed837f27cb26d8c5843872aff2b098a2 fix: frontmatter delimiter trailing-whitespace + consolidate lint scanner (iss-69) (#36) +62c38b634dfefee1bf22c73cfc7e62e6ef6d452a 3d7d8a39dce6a3e7d1b177208572a19a1d103223 fix: spec-store open-once read + fail-closed spec_id scan (iss-68) (#37) +7d4972f2c490b73800a8d991747964a38e525bf7 a1489b8cb0bdd7032b8b63d9027751ef8d8b155d fix: memory-ingest fetch/read boundary hardening (iss-30 subset) (#38) +26c116c6220e734fc3081a69284ed13f502acf9f 11b57fd509e26219e6faaf0af80102ab2892f970 docs: design /abcd:run autonomous-run loop +b3c4e6a826979b3f69cacec4536e952e39f49d45 642463c9200295f56b8869aca541b55c77d2f8a2 docs: add /abcd:run protocol and abcd-cli ledger-drain run-plan +09cb28adcb2255928a4448d68f49d6b2dc9f7524 d9536f88d265d4c82e0cecefb8ed817522f79b60 docs: add local plugin dogfooding runbook +9c9aa694366ebd4af3f41056b5c4e27115f38d00 7eac07852ce2598f12418cd9b005110afc01af87 Merge pull request #39 from REPPL/feat/abcd-run +0c7a82cb7d99e938626cb8783ba6fe433640cee6 a79e793d7e38330ed35fb37a51688f73b261e821 chore: capture dogfooding-surfaced abcd defects (iss-73/74/75) +c4ebffb5b52060f76d029f57287614edb3f90bd3 9969643982f72bae695665abbb18b24dc0cffadf docs: add principle — workaround records the defect +247a5b859d0e20338e87dfc697d687849b654a07 acd3646c95db29423facc02a1f659f3586e7183e Merge pull request #40 from REPPL/docs/workaround-records-defect +3a801d6616213d196b6e0dc529e59f909be3137a 1aee84e6aab8e545e0a1f8fa5cd79d5bd70c07e9 refactor: extract cli.Run for testable error rendering +5c4542d894560799f00cabd2b6e0a535b6203288 77cbaed3fabe80f0aaf6adfb78d62bcec2b34b81 fix: fail-closed capture surface (iss-29) +effa17c51eaee552dd258441cbd945aba6dcb799 e3f10da48a44958d477ffdfd3061163bb371b821 chore: capture iss-76 (json error surface leaks absolute paths) +4c30b4e6e950c8fdd9c96a3e5a6f7b37b7ac073a a0b00a2aed61504bb68510a55d0150ada48228f1 Merge pull request #41 from REPPL/fix/iss-29-fail-closed-capture-surface +61d779460520ad496f085c73b5d271468781e7a0 0d9e4f8f37165715d44a85906816746460d2d0f0 fix: memory-ingest partial-failure reporting + CRLF parity (iss-30) +03188c28c6e285abbd8b276fce734fff75cfe29b e36a4b7420bbddd670caf99ae39750203ed5aff0 Merge pull request #42 from REPPL/fix/iss-30-keep-original-partial-failure +d549311b16bf19a8282ec41931b4ce90954d4fe2 755ecc9af627e4c2c3e64acea1be48b97976d973 docs: judge-calibration discipline (itd-81), amending itd-5 +b3811ee8d2170c16be33089b30854e1021f4ba8b 20d6e288b5010e155836373af8347b89de529ebc feat: ship four reviewer agents with the plugin +cd8e13655de07c8514bd8de0d84e9b3a7421adf6 143c4c21253b6c7637b8cca2c655fa72e0f03f05 fix: launch identity false-positive + resolver race (iss-31) +0bccb40171e1a2f3b9778926ffff878add595045 b83f1bdb346a577115525706661e9c9e4e8baaac chore: capture iss-77/78 (launch dogfood-gate follow-ups) +32b6aecb66318fd117b9ebefe709f5269874a82b 385702e82cb6d035ecd529210fb3783cace95993 Merge pull request #43 from REPPL/fix/iss-31-launch-dogfood-gate +d73402fbf2eb9ea2c6ee02a4e19bb85796f3d578 0f18dc7115b40838c565411c9e0e42457fd22a95 refactor: consolidate atomic-write primitives onto fsutil (iss-32) +54fef5f3aed88b57ce396107c6aa426cc690301f 5bbff87a660f8ff50da0d3986de332a3095a57c2 Merge pull request #44 from REPPL/fix/iss-32-atomic-write-consolidation +be86b00011d1d761ddd9e3a38a10eff82cec5d46 4e150c5afab2e2fdb2104ef8aabee812d777c68a Merge remote-tracking branch 'origin/main' +cc01af7db15df63ec6f9ce870fdf80623d971f46 664e0e8fc0f973bac9f51a9010ab00e8061189e2 Merge pull request #45 from REPPL/feat/reviewer-agents-itd-81 +5c022981bfdb953b782383d717205dcf8de22853 4ba46ce2b225f5546c95ff845b47441c658c2cc8 docs: add itd-82 (abcd drain — ledger triage) + drain #2 run plan +c5ba73a90d3c0a3e9990a8789b474b8f58a8c53e 2ff4253a349715eb2f9c6fa5b134c729c9850e09 Merge pull request #46 from REPPL/docs/itd-82-drain-triage +1047de34bb651bbdf22caaad6542245254c19a37 47a82a75880fa429280611cee53c8613bd49fd38 docs: capture itd-82 — wire the review bar into the rules loader +137f8de25522d765a73d93086d1b055b9339db5f 14514dc63371a9149dba7c63b6b361c422b2747e Merge pull request #47 from REPPL/feat/itd-82-review-wiring +1f833fcef4085ddd5b56ca93c9229e3b1a260a2a 07d986ba07caff5628b108015868c53435f85dd4 fix: block duplicate intent ids in intent_lifecycle +4f88f349bc14571fcbd92f013dca5494504bff93 dd8a27251f556e5a10c780ac75e1b6c23fcf9d71 docs: resolve the itd-82 collision (renumber to itd-83) + capture iss-80 +9b441cba59b7aa72507b9070e093a1d4fb5d590b ed3f6663f37c4f69f1af42bebf5113406dcdc865 Merge pull request #48 from REPPL/fix/duplicate-intent-id-lint +dab363e5edf76d3e788802f1cc9f006a8e27f25b 97c131a4ae67d257f929643e1da176e996f0e5e2 docs: add iss-73 to drain #2 scope (adjudication landed) +315ea5e08e43bab0b9d0dd5823f1a190f40873cd 61a76b1916b8ac4776f7139196b9e2b3304b738f chore: capture iss-80 (run protocol missing-plan-file precondition) +e9ab51384eaa85dec47e06751e90d89568850c75 dea64dbaaaccd57bfd34f3dd7abc388a9d99c849 Merge pull request #49 from REPPL/docs/drain-2-scope-iss-73 +459e576acfb631c45a20f59a7ed9ca4f66051e87 6b7adf7df5da661744214433ccc8f00d8c8432a8 fix: strip local-identity paths from the cli.Run error envelope (iss-76) +62ba1d0ef54f693fa7b06f718c481d1c59d79385 1326c99894d11a72fcb02131ec4591e150d47d0b chore(ledger): resolve iss-76; file iss-81 (review residual) +b604c625ff3256fd5b0e50e7fe0feaf671ebec12 fccd921b04799f1543f28bb3fc0209499d310684 Merge pull request #50 from REPPL/fix/iss-76-json-error-abspath-leak +688a0de302633dbe19dc1f1d35ab310ea9461ef7 e40df8d449f99fc9e5cc9413ff5632508dc37002 refactor: route storeOriginal through fsutil.WriteFileAtomic (iss-79) +9a33a2ffb67ca34be97da602641df1b5efe3b8ec 1c14e1a06ad710c826852f1e467498143ff54778 chore(ledger): resolve iss-79; file iss-82 (review finding) +1075bf245dc30cb240229471b1d344ba7fee83f8 91df94f4bb5352bd4138f07228fb9c2f7c9447e1 Merge pull request #51 from REPPL/fix/iss-79-storeoriginal-inline-atomic-write +1979bf64f0435ccf974f935ceb5f1659d03420e7 1f040fb6179092caffc75f8430b6454c2511c4b3 fix: relocate memory-lint + scanner runtime output out of .abcd/logbook (iss-73) +2c3d32fa2645bcb98574c59980a2e6692d0e1e7c 663853c1a3a925f7cd7686af852feaa9b7f8e735 chore(ledger): resolve iss-73 (logbook relocation) +069e62e477c9ea644fe3f6a5767655562d827b48 6ea2d02898af0f6b4c1d7658851e153ba85689c9 Merge pull request #52 from REPPL/fix/iss-73-relocate-logbook-output +bad7c9c5bb1b870d45d57f0f080b71d7b53d78ae c902a0c7bf32b142e4a8795f680f661211fc1da3 docs: add facilitator-default-thinker-optional principle +cc055c9a997909a683be997d97a3aaf710802f30 35f7da36d285c5b192f8001ae8f638b52d420192 docs: record the scoped auto-merge decision + link it from itd-29 +f5c80fe69188336700e246a4a19d56016b512c14 949f26927b4e55ee9a4d9639d87a0ea10f9af56a Merge pull request #53 from REPPL/docs/auto-merge-record-groundwork +00b934aca037052551f4d0972d69acafa8459eab 7ce354ed78d32f80528f082ef48d25c380d7b9dc docs: capture itd-84 (intent-decomposition discipline, draft) + SOTA note +4dff7706bf5929d9aa1e7742facc35aeb3f22aa5 09684b7582ac9c8eb0967680be29a9cf7448f271 Merge pull request #54 from REPPL/docs/itd-84-intent-decomposition +546371f82a89e43b35b908e4e2da13e9d5080d55 76a798e168a2e155d8b0b4329735fbd4aed7667d chore(ledger): renumber duplicate iss-80 -> iss-83 +af807113410c59533373005fd274653425988322 bed1d3aa37f22ef1101b6b5ef6e5fac11fcab0c3 chore(ledger): renumber duplicate iss-56 and iss-57 +1f23b8ddd78425af9a957527bf05c00dccab1302 b38678810fd6c4cc25adeed887ce12c81126868d Merge pull request #55 from REPPL/chore/renumber-dup-iss-80 +de044a98dd6e8750affe1f719d9443c9aa631400 a6fdcedcd5b4a0825c1609c2de289130f8fd0a06 docs: de-stale intent row and scope-note spec/rules surfaces +b1290b5be738161a54caf1fd90b93e4c2c3e4338 ef89066ee15b69983a5ad823b548ca0aca63dded Merge pull request #56 from REPPL/docs/brief-surface-scope-notes +35e1a57678491ecce89994d243e3d9fd88b4cce1 efa927e950981ce04ab5662276154b836f8884e1 chore(ledger): capture seven onboarding findings from Manuscripts dogfood +e70a16d2567e6244724c5526241fd192dcb724a6 4c1a332254f3b6621e4ceccb24b89daa45dc71c8 Merge pull request #57 from REPPL/chore/capture-manuscripts-dogfood +26fe20240e656cc43b66033bad222fe6c3b47203 50f378eb8be3ac20480d535276c787fb79a056c6 docs: plan and formalise the abcd audit verb (itd-85, iss-86) +19ecf4396d4bddd6c6cb688bbe03f065720472c5 4970fdce434175085596240c437c185f9fe9405a Merge pull request #58 from REPPL/plan/abcd-audit-verb +4eed8dc84b04209424469c15971b4b5a07aca649 75f190b58460b89024e54f03fec5a5cf21e804e8 feat: add path-presence and gitignore primitives for abcd audit +78c69c81825b9f32d7578e97fdfadbe1ad4b0abe 4805c479697d770614b67b2f3bedcc2b6f73fce0 refactor: route launch and lint through the shared path primitives +a532aa1b31f2f7ce88973d74cd4c4ace4c54a39e e4217d2bf689de2be1213f2261609c6f3b4bea28 chore(record): M1 decisions + journal for itd-85 path primitives +5da4d29221dc593bfc858fd86228e82f1f53ce32 28cf71276b57c72dfad141c934cd018818de5f7c Merge pull request #59 from REPPL/feat/itd-85-path-primitives +6ee690142104817c23b58b90acc1cf0d4664d8ea 64f7876c164039ba483836bca8a647a6463a226f feat: rule engine + serializer seam for abcd audit (itd-85 M2) +be7190b4d9f5ca163e4292c073c81ec48ea809c0 cc3992eb8ef73fca71bf790f9ec9a48f2df30bf4 fix: fail closed on a finding with an unrecognised severity +922b6ae16eafc131d712cedb13cf60905b85cf78 2b8652a7bd78f5c02884dd3749d47e16f54eea19 chore(record): M2 decisions + journal for itd-85 rule engine +3684df69e6bf2d8236ffe66c1a5d805f18bd8079 b6ef2caca7d31826851fb000abab6afa44f9397a Merge pull request #60 from REPPL/feat/itd-85-rule-engine +6719c36cec22070b9fbd2d199546a01b256a9399 6b8f5c18c65316caf5d6e5fcd5dbaa3e86e4b01c feat: add InRepo and TrackedFiles git helpers for audit rules +5982feecc6f3ba1e86cb9ad7b818890d0e5954f3 ebde2ec3582975bd1c0878bbee928e08eae944af feat: the five v1 conformance rules for abcd audit (itd-85 M3) +7dcd78a89dd7ad68f064759e82ee0bc9b29e45f3 83c59600b825ebfceb01091d6b11d9fb524402a8 fix: contain privacy-hygiene file reads to the repo root +d75beb248257bb850b2254d53d74c0364d3c30a4 1414f6140f2fea840da4a602acb26099ba0f1325 chore(record): M3 decisions + journal for itd-85 v1 rules +6135e70d7eda6fcede59e922f27a097db98aff21 8d819e340828dbdfc2469f56abe5624cccefb772 Merge pull request #61 from REPPL/feat/itd-85-v1-rules +3097485337d2973fcf4ff8451be7d511711480cb 7d6510e74625476daf3377abf855422bdbdf8128 feat: wire the read-only `abcd audit` CLI verb (itd-85 M4) +71b702276782d7a018467430cb8b7a1ab77862b8 26f732c255428b34041c6ff1f8c92516f88d4cf3 Merge pull request #62 from REPPL/feat/itd-85-cli-verb +909afe22a3bbcc12c72d221f56218d35cde1c0a1 6947945e10a60b54467df1ce9117ca7d363beea1 feat: ship the /abcd:audit plugin surface + registry row (itd-85 M5) +5574a72d4ce29b16ad9dd54d036cb9d8a5de9a3b 8bb0c44f99d0fce9ca932359dec0e72decb4aa32 Merge pull request #63 from REPPL/feat/itd-85-plugin-surface +2f1b78b8ef3577bd895d09bc9f4ee179f8154fd2 d7e6f8aea492ccef8160b2eadb8725fb89185e20 feat: wire prepare-this-repo onboarding to abcd audit (itd-85 M6) +61d7ede6752d5d690e902b19c80d8f205e2a5243 808c9bdd14143243799fa79773af5cece7be8979 docs: genericise the example path in isSystemPathSegment's comment +f5367cdec985c8eedb6aa796766832b3a2c54e06 719972f8efea9d08e0c5cd3a534435176b1979e8 Merge pull request #64 from REPPL/feat/itd-85-onboarding-wiring +d89aba474af587b522efb318af80184fe5af1534 ac2ce2e1c0d68ebf6600cedc7c70c5efa15b9e4f docs: record the abcd audit verb (itd-85 M7) +514467babc664dcd5ac60577ccf4d8a0c9c02570 a009a506b43ed01ef6f9ad7197c73b0dca21b5e3 Merge pull request #65 from REPPL/feat/itd-85-record +038a5834bb0d73ee8a8bcd5c5011f6c62861ab1c b8aeae7c5fb1272bfea1961b6c58d174125fe18c fix: tighten three audit rules flagged by RepoPrompt review (itd-85) +7d4149520ed17011f5008e4feeb89783467231d0 3d6c47e54eec6fa0db425d5162c84299bb1fda52 fix: treat a path under a non-directory as absent in fsutil +a9b58cd13556a7515bd6dbd3b5b22412cb1acc42 80a44355f9707cb5a7b2a01a089229cb56cde3f2 Merge pull request #66 from REPPL/fix/itd-85-audit-review +77357a954e7ae74b300e0225338c9019d1db8773 e7393893fc048f36a5fda180ef37ce2b6adb51e1 chore(record): the ABCD sensemaking method, its principle, and itd-86/87 +61cf985ae5197916282a79a8d7fcce479c2059c9 6f17fba5f3ea2ada1630f8eb699f28f6412279c2 Merge pull request #67 from REPPL/record/abcd-sensemaking-method +38eeb2a0c80f76d77ed27f7ec935759a17f1bd72 1ac0691c85ed942e2aa43527ee92fcfc955001a0 feat(record): the lifeboat becomes a coverage experiment (adr-35, itd-88/spc-3) +50c35c267dc2c1b8ba0d16e74805539b593c8657 792c3d9bf3294118d65f0bff5f377d7163fb9a53 Merge pull request #68 from REPPL/auto/itd-88-lifeboat-coverage-m0 +007664cb0de8f0ea16f4891c3d659aa0e7918a9b 6670b643f664445ab49863aa5bbeb81c9d4df260 feat: capture session transcripts on SessionEnd (itd-89/spc-4, M1) +5459bd947d3c5b41ed4207c61d76422eb7d127ed d6b8c8106a78e60ace5afbd436db6db7ea89b1c4 chore(record): iss-95 maintainer decision — make the not-installed case loud +192fb54be54a372978899faab69eabd2a70248de 655f523117ee55fb71e784924c2fb3a4cd655e1a Merge pull request #69 from REPPL/auto/hook-session-end +e045b70da6d8e8e48dcbd15d2718c17cb92533e1 148571d2eca395ec2cf78165f962179349aa357d feat: warn on session start when the transcript store is unbootstrapped (iss-95) +7d579d9fc5b701f664081b1e6215ff689dcca520 2dc811dc21a41af6c3ce15095feb71acd97839a8 chore(record): iss-97 — Detect's marker/config reads are unbounded (security review follow-up) +664ee8ff2e1f2af7c0ff4068e93d03289a3c5d6b da626d4ced1f66ed2f916f87453293772dd346db Merge pull request #70 from REPPL/auto/iss-95-session-start-notice +443f33e63d8276be777e6c8e807ba9f2d239a2fa 1c1c5fccde3f69a6768efe1396dfceb677ee52b3 feat(disembark): coverage-probe scaffolding — schema, orchestrator, verbs (itd-88/spc-3, M2) +d20701a57edaee13140ca3a23feb57cb9d17c577 56c468c6d51a16e2bea473913fe9bc6d1b4f988c feat(disembark): tiered source adapters ground the coverage probe (itd-88/spc-3, M2) +c3c4a333ecf55230f6f64ae58133a18ab962c960 d22846a9f2d906b151ae4ef3e34fdd9c03184ab4 harden(disembark): fixes from the M2 adversarial review +981660b2258ae104ea9151e0558e92c3831398a6 2aecc1f7d182c971ac1e72ebfa510bfa636621dc test(disembark): don't assert git-history grounding on the ambient repo +00c1d510d94239accba660d55da5d7596981f615 5270bea91813431d1cb071a90a0da0ad99f40598 Merge pull request #71 from REPPL/auto/itd-88-m2-probe-coverage +d57155808b5c5abee8f3c42f23e7e25c58a3dceb 5ed2aec9cc633b696fca5ee5919baf914ea4ce32 feat(disembark): widen dependency-manifest detection; record the M2 gate outcome +b1bbc4ec526d57bec221bd591b3aa2bf86d0a742 d682c854207f6ed2476adb828e5bb13098406239 Merge pull request #72 from REPPL/auto/itd-88-adapter-gaps +a5131fbd14fd3cba534a804f7bff7915ca0a78ef 88d2234984fe9aaf65e28a0b4eced20cf59e05de harden(scanner): close secret-detection and redaction gaps from bug hunt +3c87eec0c2774f7eee63da19c44f21be31e1183e 4524b2f95b25d65aef25e0315fa9e1f2b9a59e82 harden(launch): close symlink bundle leaks from bug hunt +f0c5edd5c31f95b65e88054f3f3db9819d337bbc c3f4c4f508366716ecf399da13e0ee7a67bf9f88 fix(ahoy): don't delete user .gitignore content on an orphan ABCD fence +1e00c59059edd29053b2ae02e9d34077aecf1b6a 8977536a788b62aafa8641609aba52249a6c06be harden(cli): stop $HOME/username leaks in command-error output +3ca222808356a9e661fc5c5c696e1c137ac1edba 017f5314769e171027418dbfcaa54107062d1f17 docs(changelog): record the bug-hunt security and correctness fixes +d9580c7e863d8a9c22a3cf96aaa4c04f8f733404 98b47e19fca8ebc5fdc580d70449f6753576fc2d Merge pull request #73 from REPPL/fix/bughunt-a54cecb5 +481f27212b7c90ecbf0c00eaaaae52e8a738aebb f2139896bd578a3176f8b13251cffb008b70274f harden(gitutil): fix ignore inversion, env isolation, and error-swallowing +e7b1cec78143047e626b73e6e66d4ca666464ee1 778aed3b71ee00a5a1c7f57cc55bef8a3627969e harden(scanner,fsutil,identity): masking, atomic-write and identity-gate fixes +58a37620cd9c4207816825548b5a2406d586b6fc 1c7242ed76db6e92af460f40daead45cb7b252a7 harden(launch): fail-closed gitignore probe, no-panic globs and pointers +f75ca075824008d4dea89497f011c043370acbf4 6cf0df8a16e92bc50d349be0c9406d2d270b1903 fix(ahoy): fenced-H1 marker, symlink gap, input validation, pin adoption +6ad2976759e2ee6dbb04af0061cf0bb84c1636a8 e169a4b2f2d7691c6ba309922371c4adb7e09b70 fix(capture): quote-aware inline lists, alloc overflow guard, orphan re-check +72651e38e2d729512d467bf09a7c307603ced488 231625a15f3cd61fed2b2cf5ac3c01ef8973a5e3 fix(rules): recall matching handles inflected and multi-word keywords +41aefd349509cfca0d5bf57d8b4ff975f5850c01 193b5a0d7f664508f3fc9b5d40c1c03452bf97a8 fix(frontmatter,intent,memory): delimiter agreement and YAML key quoting +12d0a696ca15609c77739087a6224933064935c2 6f0c17d25286f27a556d8497ad3f8db6dbec7135 fix(lint,audit,spec,history,lifeboat): false positives, fail-closed, id minting +033102acbe1451561c8ad62924cc561f432c9f80 b226e2624c37f341ccc322bf57b380ea00653d83 fix(cli): repo-root pii config, exit codes, and input validation +a35dfcef49c14d5ae10d180662c823bdfcb6e51c 5f3b072cd49377dfc23008bf4e7d3deef602fcf4 docs(changelog): record bug-hunt batch 2 (security + correctness fixes) +d2d87f0a9b8c4da5fa37aa73356e33865f7e2d47 3c6c60c77470597f9ff169464f141aac5d0ed033 Merge pull request #74 from REPPL/fix/bughunt-a54cecb5-part2 +9395a0ea63c0d686108519555293ac7c64818e25 f60c77a5255e10af05872170f6198f5dcf663948 record(issues): three deferred bug-hunt findings (iss-101..103) +cb7295b70442e8d79a6baa3c203b9fa5d5d18ba7 88b5d50e18034360a1be0a2f6de2a468763a1001 Merge pull request #76 from REPPL/record/deferred-bughunt-issues +97df0c19e329fa46b163284a40a48994c1678755 7f4542d0688047d18ce0e51b55f7e44f4987247a record(lifeboat): adr-36 + itd-90 — coverage blanks are a fillable lifecycle +51535107fc29f02a49a01de06dda3426774520f6 f9d392ace502f624af5478dd873c049534cbbdf3 Merge pull request #75 from REPPL/auto/itd-88-interview-lifecycle +0e9a6b7a42e65648936a727699fd61ccfaed8d30 4b5c523bd6b1d650abaac1f5b32bc20dfaf27e1b feat(lifeboat): read-only plan spine + dry-run verb (itd-88 M3a) +e7884fd3805f5a2b69ea0102a5d3bec32f896062 4f84bc02917769d261c7cc587f20b87298c38f7b Merge pull request #77 from REPPL/auto/itd-88-m3a-plan-spine +ec67bad0bbdf4e865c58d9273a520221c10fff61 6ca1ecf07e0d7dfd91809e276018975957fc260d feat(lifeboat): disembark write path + /abcd:disembark surface (itd-88 M3b) +23bb11913eccd142e1cba7439222343d4c863a13 e15b9a49dd576acd6a0f03b4cbe635e0e2d41590 Merge pull request #78 from REPPL/auto/itd-88-m3b-write-path +281a2c80f15d5af5d97a422710c1f9c4db391be7 ace92074cff84a55054a081dee3619c22d67a055 docs(intent): AI-attribution preference selector at project setup (itd-91 draft) +3b7233d5096975bdb5c51b22a49a0b1b6786ff47 f67aede5b54bbdefed64e0cef8dfdbba16749ffe Merge pull request #79 from REPPL/auto/itd-91-ai-attribution-preference +6f7d98edd91b53195e926bc0a0ed89be652c6630 390497c8e8fc4e5a009649105dee9263f7bd6736 feat(lifeboat): graveyard shared vocabulary — types, id grammar, tunables (itd-88 M4) +92ea86699900f115f9bfd0674a1d158fa1c720f9 7688fc171c1fa32b6d8f7b71b7c621552f3eb853 docs(record): spc-3 graveyard approach, CHANGELOG entry, surface-registry prose (itd-88 M4) +282fa22a4d5b1a1ea11e700d404825e268a0a0fe 459fcdad124d987f350773d4b6695f56da8ba627 feat(lifeboat): graveyard layer 2 — recorded abandonment (itd-88 M4) +157f38fccd8996b86b44fd53944ae2c8c6d6c882 a0227d3d3335fcf06383493407b45628d32b0de0 merge(lifeboat): graveyard layer 2 — recorded abandonment (itd-88 M4) +5b8933884d95a55f2b15f788dc71263ecbf50b57 186fa938be205b228fbe68f0916d372ad86d8ecc feat(lifeboat): graveyard layer 3 — cite-or-be-dropped lessons validator + disembark graveyard verb (itd-88 M4) +a7ceb9efc1a89399b46dee3736e35c814dd65d45 21c5f99be03753e7453c94a48ef7762970d18cba merge(lifeboat): graveyard layer 3 — lessons validator + disembark graveyard verb (itd-88 M4) +7b545bbf3647524b7609c71d2452740287672f1b a9d44b6a7e21506984e8648898b60ce00fe34bae feat(lifeboat): graveyard layer 1 — deterministic git archaeology (itd-88 M4) +0f212e34ea4df0155d4c1db276c47e39f47c53b3 618dbaa0b7e85024b8396ab8c524876319de6fa7 merge(lifeboat): graveyard layer 1 — deterministic git archaeology + plan hook (itd-88 M4) +bdccffb765a431709f4d364cbe067603e49259bc eee54c21b4440ea65d4e419899ac3d61fcd6c135 feat(lifeboat): drop the buildAbandoned integration stub — layer 2 is real (itd-88 M4) +8bad3f55f4dece34497a626bb1e24c8f1b35ac56 f14aee5320f389420b7d0d32edda5ea0ad4ec97f test(lifeboat): pack→ingest graveyard round-trip over one real fixture (itd-88 M4) +762a299753de5f1539f8ab483cc9e22a74a09fab 6af83ed14de970a5c68a46e6ec09ff0361d0de5f fix(lifeboat): seven adversarial-review findings — fan-out bounds, seen-id ordering, locale pinning (itd-88 M4) +a0f767959ce96abf66c375a8f29d2f55f83ae5c6 b967f9bc6f472b8365bcaf922175e058e074dc61 fix(gitutil,test): git errors carry stderr; settle the cap-test object store (itd-88 M4) +dc0bbac43c2cade32ed3f38e964444ec18167f29 1c2ce90d348e01020beb2a34e159a3dc2744ca08 test(lifeboat): build the cap-test history with one git fast-import stream (itd-88 M4) +53affa238c30d3bbcf1fbaa7617a95585a935ee9 432989778f9c1db72a3f48b10da63317b6e64624 Merge pull request #80 from REPPL/auto/itd-88-m4-graveyard +89b29808dafe4bcb4a46d13f98715f444d788b2c c914e7940f4e494b1f9a9ba17b2ac1fe9dd33a67 feat(lifeboat): embark shared vocabulary — conflicts, plan/result shapes, family tables (itd-88 M5) +6311afba5cbbe245322448b59cc1cbd6caf6b0b0 ac351a7c2889089483fbb36ac119375a3234fbe0 feat(lifeboat): pack carries specs; record-derived sub-manifest hash (itd-88 M5) +bba4cffbe88556ac60cdc7578d763a36e3b0a968 03c9f516ee1495f0c84fffd5df367ef47cf78240 docs(record): spc-3 embark approach, closure re-scope decision, CHANGELOG (itd-88 M5) +e53dc453a2588d7db1e5a6a933ba968d4467b28c 946edc664c54cee2bda550ecc5d844f3b3a71353 feat(lifeboat): embark probe/from — contained round-trip with bulk conflicts (itd-88 M5) +b594011eb6095a08eeb5049adeadfa45a9d2add6 558485eee9b249935094bceee42381745a881251 merge(lifeboat): embark core — probe/from, manifest verification, marker seam (itd-88 M5) +be0031633722707c56a64b7c5d573dd252807c9e d50caea31ebd0afa9ccb4b2ee5b25d8b1ab01207 feat(cli): abcd embark probe/from + /abcd:embark surface (itd-88 M5) +bc4b1a165d5d2f83baf2a226f39def70b70ce717 ad1933fd5df0d48e7ebdc4261e0cf5a1ee5a9f0f merge(cli): abcd embark probe/from + /abcd:embark surface (itd-88 M5) +96e00f35819c8d86a521359f439db84af0867810 a0cf78fc34c5713818f1526e9c79146b3dd0e162 fix(lifeboat): two adversarial-review findings — provenance-hash sanitisation, duplicate-target conflicts (itd-88 M5) +a099d5fc4319483da6be4b1e848be56309a1b86d bd59dce1f2f09aa8a9031303fff72afdbc4adbe8 Merge pull request #81 from REPPL/auto/itd-88-m5-embark +23275b52756c51ab3f1d3e8c8dcee8a9769516cc 8ff95e5f64ec5d0e20f3917cfd2e54261c3e3dff feat(lifeboat): synthesis shared vocabulary — schemas, citation grammar, oracle verdict enum (itd-88 M6) +efce3e413f5067d16b35748f4b0bfd21d80a6626 d9d33287fb8c9800c8944599f776b720688b7c4c docs(agents): itd-5 prompt infrastructure for the four synthesis agents (itd-88 M6) +deb08d8924395fb00363949fbfc3011bac4ab2b9 002821cafbb9d4f01200e468b6bbd0e17b21585a merge(agents): itd-5 prompt infrastructure for the four synthesis agents (itd-88 M6) +d09b3a1135ac38044f8c1333ec495aa3e6b47fd4 3f77a72433f6a4454797add5826b7a46955496a7 feat(lifeboat): lifeboat-oracle synthesis seam (itd-88 M6) +4b79e4bb0d825b4a6eb127f5b64d8e76c7ddfede ef9b8871b0025ef25e16b529a757559e6c9f4a31 merge(lifeboat): lifeboat-oracle synthesis seam (itd-88 M6) +8f1ce7165496c8f2565438d4943be7513b6bdca1 a309cc4c60c80b5f9a2239fa589f3108ba7be072 feat(lifeboat): principles + press-release synthesis seams (itd-88 M6) +b17ffc9244a1596e55506e11dd94314cd0dc12e5 eb4780c7b5d6b5bdbf4db8c304647734a397bbdb merge(lifeboat): principles + press-release synthesis seams (itd-88 M6) +f96bd5d3aa4aa3f52a32f179517f6d83fdaf683f c0062f577ca594ca61c67bd96c914a965a68a291 merge(lifeboat): principles + press-release synthesis seams (itd-88 M6) +daddb6fae4a6c00049b62663c70ba8e5d95b34d6 3804799bf6a021d47fb335a78bc762b1e0e36b54 test(lifeboat): oracle re-run over the same lifeboat stays manifest-verified (itd-88 M6) +608ca3dd87c6594d51f067f4fc4f5d1279a1c5be daff7629e7e2b3b3a4fc147340bb9ec876499675 docs(record): spc-3 synthesis approach, plan amendments, CHANGELOG, registry prose (itd-88 M6) +f750a1c29e2e885a2046aae9f6ced5fffafaa2ad b32119a0ac6bb8893d2085e22033534ee48141cb feat(cli): disembark principles/press-release/oracle + orchestration surface (itd-88 M6) +b5ad7df28b1827e185277989985159a72f1bc24d 1e19318d127ecf867ccffe38beb4e8f60fd4e214 merge(cli): disembark principles/press-release/oracle + orchestration surface (itd-88 M6) +06455f57194556c0a390c1902daf0be106e1b6f2 a5ef64d5634464f3a08136523d1ec92544a12079 fix(lifeboat): two adversarial-review findings — prose-Decision ADRs, self-referential citations (itd-88 M6) +ce4d552e55206dfdacedc655acde408befab00b6 3968f2f867df2577dd34cd661d17a6c6236d8dcc Merge pull request #82 from REPPL/auto/itd-88-m6-synthesis +846a939172baa82dfc4730ed8beee56e04f63dcc ed235d72c5c6f5eb335c28875d86ede8f39bdbf5 test: close the session-end AC coverage gaps (FIFO, cap, residual, stderr) +c3aeab7b08d0e8b9154bf47d70411f281ac5c72e 9d81ce5eac7f2392d5e439bdaa60649add74626f docs: author the spc-4 body (approach, deviation, AC map) +8ade1cca0a7edbbab19b51ffb91416624affcf2f 9bae505ad24773a51484cf43e1c2d3281782b17d docs: close spc-4 and ship itd-89 with an ingested 7/7 fidelity verdict +2194a924496887ef2bff9748537c31cabebe1773 910001a494544a5080a3bc6e077f1302284eb9cf Merge pull request #83 from REPPL/auto/itd-89-spc4-closure +e5066fe50a341cf869f48af5f295a1cc1665a73f 5a2da05ed346bfece457f51d1973b9f7f01d6bdc docs: land the planned-intent-drain run plan and burst-1 findings in the record +7933dc25ca501b9935b9fd22135894f47aea8ae8 78559754f76e3a2b93b3c6251e1cd1865364227f feat: name the next step in the bare-ahoy folder report +4e44eec22dee3cb4ca2ab65ec37362f78fa822bf 3e6d936c0af502d69906ce53a88f3dd2a6427fae docs: mint and close spc-5, shipping itd-40 with the verified AC record +18535915d6fe0a067e9a8388d0b10ad3e0a3898e 0d34711844d41963fef726e9bc6ec25f6cc5cccd docs: record burst-2 findings F9-F13 and the delegation decisions +8c9057939d5d36722640129c13a33e25eb247202 029f3d42b44e9e457ae107a2601b57e8cc791240 docs: ingest the 5/5 fidelity verdict for itd-40 (receipt rcp-a3791f7dde2e) +4d98519d26af9937e1b6a8ff1f14b5ca6167ea30 9f4e7768258073f2091e7a4425a8055f5a537a41 docs: close the burst-2 M2 delegation log with the review outcomes +83344af7fdbeed61c1c9feb51aa332112affa959 24bc1211c4a67dfbfb287c9d19285ccb17db4c55 Merge pull request #84 from REPPL/auto/itd-40-folder-classification +6876718575aa6c02f60e71bb610e9579e8a9647d db51b217386260cb91d2e04e356a6cd58bd80502 test: characterize capture list --open issue-field shape +d85a402f3feb72dbab6110ea85b81113afa32b2d 0b17ef884ae227115c2151765bd4ed2402a42abb security: complete the trust-boundary hardening sweeps and record the bug-hunt playbook +0eb418c1acb376579f5c631c0c19ee0308320aa0 c3fd7f98757dc958996e79f351bbef1f9ea3e9e4 security: finish the env-inheritance sweep and guard the embark/pack reads (ultracode) +c87e848f82c587b31965b9824d6b680583504941 1f8aca9704c7a73faa639cd34cd90a02557379ef Merge main into bug-hunt (resolve the run-findings add/add; keep main's superset) +69f76724e3b2003fc38bfcedd1b8dea3de532e0a 16a55ac2870a55efa16560a562e7d156022cf4ba fix: give the retention test's setup commit a committer identity +aa692bcbef7972b4ccfbeb348cc16684f1d9e6ee 22c2f529ee26a78118363a2a3cd0f949889996dc Merge pull request #85 from REPPL/bug-hunt +1e4123f211ce35dcec3b7e5b665f9498fc305710 a16be304d33d053a2a48cdad638dfb762e976c7f Merge main into auto/itd-4-issue-capture (post-#85 base; no conflicts expected — worker was guarded off the touched capture functions) +67cd7e70878eb1e855999e7f0e739c7d92e27abc 8f443590f23d9489cbcdf4c38b27ba39bbe4f9e5 docs: mint spc-6 for itd-4 — record catch-up with the AC3 gap held open +89b7060bcd552530c47c369ff993a80e55853254 be4e33d32dd1b5938b2494bc991fd3fc7b4191b0 docs: correct the spc-6 ledger count (103, not 104) +d1747aa5b3f58daabd91821f7eae813c9c254328 b295c5974d006aa7c526291813f062d54c33b58b Merge pull request #86 from REPPL/auto/itd-4-issue-capture +23c0e862bc3b1fffabbf5babb4eb7d89bcc2e6b4 38dfd25d7f663efaededb9717dc4cf9c9b761c7a feat: add the GL002 forbidden-synonym lint gate +2a6e9cd16e1afbb93db971e2e98b128971c78f23 ebeb134aebbcd6c56c36a1cdfccfcf81a6a0f685 docs: sweep the residual epic noun to spec behind GL002 +6c1a88a27cd96b9f77d8950c6a2b158e1c19d945 75ee052fcaec3ec6ae9280080bd081470015c7c0 docs: changelog the GL002 forbidden-synonym gate +a1e1467287bca718bab2ca61d5c1f222a52711d4 9e7107281834e40dcd42c224e9f98bbd3e6fa83a fix: harden GL002 frontmatter skipping against a leading comment +a9329f8f2a877f7dbcff7f9ef81a030a9b954270 bdc0383ca53e8dc0644a13ea7f0cfe4e5c86a5da feat: add the intent quoted-text create engine +c3d4d0a5a75c35ae0bcfc6b73487de8c157bfd81 8b611992d0447f9b6b7ab2f1784647d3b7dda830 feat: wire the intent quoted-text create path and decision rule +7289aa520d72c867de68205d8a2b87c7c05d8321 9dac54d6a7ae74d1fae39376f2a7c5ed027b7d27 docs: re-plumb promote to the create path and record the change +7dc46e6346a7e51105cde09dd9e9b83f507a274c 77e6812efc9d45c55e57eac3c5e0fd142684a128 docs: mint and close spc-7, shipping itd-46 with its adjudications on record +45c5cf79b16e390d90af8f89760723051dfc3ccf 5883376f2369d4e8c97c3518e00eb9923585c6c2 docs: ingest the 4-MET/1-CONCERN fidelity verdict for itd-46 (receipt rcp-69589b8b5103) +0a5123ee3285eeb0eda46f731f9a3bfc45652def 7bfc93a658116d079def70c6834d879cc9d71ba1 fix: repoint the three inbound itd-46 links broken by the shipped move +507b16ae4e18988b1dc4f15fd90b1a8cd4cfafa3 db5f3bcf6f97d0cf7b9fbd8900a4f6dabd3d2203 Merge pull request #87 from REPPL/auto/itd-46-intent-quoted-text-create +027f929260b8fb315ac5b913ac2fd5e6bf4cae00 efb89bf7d7611306081048abf00fcf7f671d89b2 Merge main into auto/itd-43-epic-to-spec (post-#87 base) +3165ca9cac6a0fc521a3fb176c527f1638c26267 37d0fab672f607be600fee0e1d77072b5cb9bacc docs: mint spc-8 for itd-43 — GL002 detector-first record, AC3 held open +1aa53ae96011fad069244a84ef6acc51c5b86d8b 04b0d99deb691f21e4a45776cfa23f01d25d54f6 docs: ledger the GL002 inline-code masking false-positive edge (iss-106) +306c9d5742464d8c9d0bdfa3902f6119bfdb918f f79752f6f860d5e32bc6deaf7c1da6dddc95e898 Merge pull request #88 from REPPL/auto/itd-43-epic-to-spec +859a397efa4696788b9ef65f26b6c68b7eb6f242 d60b7b593db32250e4fa33248d8db4e4e7c7a311 feat: adopt changelog-driven releases and roll v0.2.0 (adr-37) +ae5e70391e855bbe7b3b43e6d9b2ae02530ef63b 23ac0c1f1fe14f65f99e3cc431fd8e821012d146 Merge pull request #89 from REPPL/auto/release-v0.2.0 +338575195cb8bbc9b11ae4b20e538f6739cabbe6 2979e65d21ee01e266e33b936fbf03c9ac3e4353 docs: ledger the ahoy install visibility-flag silent no-op (iss-107) +43721e74402d02e663c16db966b916eef1eabf4c 2366aae01c53ca7ce9c599308e4aad1d15f97a2a docs: close run test B — the release automation verified live (F18) +dbce1d8f292e701b29f43b2cc6b44b9f38621892 8ab4b4217002f52d2fb6a0f9b82b6ec32679f94f Merge pull request #90 from REPPL/auto/run-close-ledger +73428b6e8e672fc1d0fde07de4770d00f020a8ce af86d51395a3d174baf6c6a1e8e21b22669ee564 manual: Revise README with new badges and project details +a939f8e9b3e1506c8b12e85f2f17c57e349e82f1 a9f60386b4c0f08e6354069dfce0fdeb69ed4791 docs: add the one-line checksum-verified installer to the README +054d2680af26e7cc4bbdcb268cb6787a8ed1ad56 74a6632cabbf0acf4c6cb26e656a47505a5928cc fix: repair the README badges and align it with the shipped surface +b56082c915693bf204fc6602f09d6d772efa99a2 4b12aa5e93bc2e2c6d4d0916037971e0982568f7 manual: Update last commit badge in README.md +03294b04b5a418e72713ee28b89b70d08f0f9fbb ae76577c972d31b823e90669ac42160b4c7999a9 Merge main into auto/readme-curl-installer (badge fixes landed on main manually) +8deb45fda2227ef83c918677a878f85fcb6bba1c 81fad6eb1a0aadda6047b5c0bf5730c6cc55af52 Merge pull request #91 from REPPL/auto/readme-curl-installer +42555c7851474665bee2c767e339be82b2b63ea3 c3a6bfebb3a88574e5e560aab64f417a29efb37e docs: capture itd-92 — branch-protection assurance for managed repos +467e1933518f505a330dcb7871f6a36787383729 29c86a1195ab7cdb6d0dce165ec15b09d6c2b61d Merge pull request #92 from REPPL/auto/intent-branch-protection +aba4ed52a1191e3facc0227fad650eef9608644c fc707b97c47b958553344a08aabb1050c0a38c53 harden: stop secrets surviving a trailing-underscore in the redaction scanner +77be937244e7b7c14cd788cd5fc5e48670e39916 33f5bb229c751c3c281012510a79035b5b69b6ad docs: changelog the redaction trailing-underscore fix +76a62386c1d9f324ff02dcb5dcf956961af2a8cd 4997baf88496f67ba6c3dedbf3bd92e194b81689 chore: drop a stray empty CHANGELOG.md.tmp accidentally staged +4ba4926eee3329df610f6d56d798b7841c398ae8 13cae8c1aa32b9f9e29565340254fe1a9cd28736 harden: extend the trailing-\b redaction fix to the mixed-class patterns +56df5602db19368a71fbf596775cec632925f4b0 78ad2172705f3c94a32adc38fdf0ca47ab6d4f45 style: gofmt trailing_boundary_test.go +cd3b257078f99bd7d762e0d6e6cfd7b77bd618ac ad8602cf8f407f7f46f6f3b1edc900cd0d95bda6 harden: classify the symlinked sources-index refusal, close two frontiers +cf42412de7cf4f57d4c23a55fd1cb0eecd9b560e 3c35849cbf68e33277d21509dd36e41835dfab5d Merge pull request #93 from REPPL/fix/registry-symlink-classification +e4d54473ba05110f793f46cc502b60544e238833 d4f6c75206c67d996a50adcad4f75670ba291482 harden: close the graveyard-read lstat->read TOCTOU with the guarded primitive +d95cfe9865924b20770b58abf65e231a4151cbe3 d7395c9664e4c347f5f67892920316eff7141283 Merge pull request #94 from REPPL/fix/graveyard-toctou-guarded-read +e922a138ff86f6fa9c2e7d8faee9619d197b521c 7c7a18c58a527bdf7f0aea605cbe576e64bed72d harden: guard the untrusted CLI JSON-operand reads (readSource, disembark coverage) +5aafc89563adba1f7be43f14f5a823026d7747a5 99b5167d5229982cd8f2f40b4ad5d522e1f33db7 harden: route the last CLI operand reads through the guarded primitive +2d2f7c380cfc17618e8e8fb4b6766ce58e8f45c5 0bdaca632a91b349dae1ec3caa470c4a785e698c Merge pull request #95 from REPPL/fix/operand-read-guards +46704d922cdccecebaf708668a50943abbf9d8de aadab1f83a9edcf5f37677dcb4359cd8f1b2d943 Merge main into fix/redaction-trailing-boundary (post #93-95 merges) +5804363148b42ffdfd38118ccd1c1765dbb5df4c aa5f88c76a70431093f34f7f8b30376f5dbb09b3 Merge pull request #96 from REPPL/fix/redaction-trailing-boundary +59533b2b39388a03099a605f38d7d484cc89a53d b36af2dffb08d2659da5b2fc93fb35c8f43e2e55 test: disable async git background ops in lifeboat tests (fix .git-cleanup flake) +53d0e2ad085d4fd003a7539f4d7e7a981f225084 5f5dacfe2bd54b9a01c9995f42428fc170b294e6 Merge pull request #97 from REPPL/fix/lifeboat-test-git-async +1875666f5dc402a59e8135902f0e630d408b8a42 075f59fe2b1760d691e086d59ef868161894e2c4 release: roll the changelog for v0.3.0 +be8e07d29f821745d669e81aa540d2a9c3ca4660 fb5a667ac50603604d5750f8bf5faa09a5ae913d Merge pull request #98 from REPPL/auto/release-v0.3.0 +46d41795dc6c5edfe578831e890860db5e0ef2b8 6165e6c59fa56c5636d03747cf77355859b93325 fix: make the semantic release gate satisfiable under changelog-driven auto-release +af70fa6be789f5463a80b5bc624808e17dba59be 75c6c86e9c5f5bf5437274fc35c88f6e1e1925fa docs: reconcile the brief surface prose + README with the shipped binary +f9adcefb05204511569a0af4d6c0c3fac95c3355 02516fb2a38e8e232c1d7f35969f185b5173c4b2 docs: reconcile disembark/embark/ahoy surface prose + drop broken README image (round 2) +58ea6ca826207c9e262da0223a8a7404e20ac40c e299dc1ccb2baa773129d9018e82161c9cba74de docs: fix the last three surface-prose drifts (round 3) +5c8d5aaeb29a0bb13a7a7573e392555bd6aa1eba 46435df02f99930a8676b36f6ae977f8fd61c75a docs: correct the CLI-reference generation claims (round 4) +6c8ef4e2e4c96c5a35cf33151f1916bf922814f7 61e47b3fe41c89d005bc492f60e0af3831ec9e21 fix: address review findings on the semantic-gate commit binding +bf89984b66ef9bb5785a8f60f8cbe8fae2da968d 221ae0a34cd3608471a886d9519fdd0bf8bacdda docs: correct the unknown-token exit code and the commands/ enumeration (round 5) +8e8abb88ba70c11272141d914a7f6f7ceb81aa84 3b32d8586a1d4392c0b73eabd5d5f339449a2638 fix: exempt sha-keyed semantic-gate receipt dirs from the reviews charter +7d5422b0dd6a77d6b726ab55dcbb14b35702aed3 0098f5e3da50503ead2285e1d98941ea4173969f release: land the v0.3.0 semantic-gate PROMOTE receipts +cbd66de321390c77e1ff682c44aefe66e2c503d3 c9ff833eff63620b8db4c1685078e5e30e590000 Merge pull request #99 from REPPL/fix/semantic-gate-commit-binding +0532b4cbf702a463d9d93e12c406b30fad8a0ff2 018341e52bd59984f2b077a6dc1d6d071783cd34 docs: record and resolve iss-108 (release-gate self-reference, not systemic) +af7ec462a2803c8d7396805196e2da10c6b03e3e 0743ad5d5519323c26c665261bddf5c83463ba83 Merge pull request #100 from REPPL/fix/iss108-release-gate-record +bd459d37b946869837a5d739d707160905b6c5b1 c2efe2960ffa6ce0bf0aaddf7a15346ec8de54cd docs: capture itd-93 — abcd scaffolds a hardened release gate for managed repos +f766b4f693cd9657fe4a7e2cf9aba63e246bf2d8 3622542885c1f147bda0bab2a3bd021f63e8785d Merge pull request #101 from REPPL/auto/intent-release-scaffolding +2fcca173d57e81d136b2ddf53d77429870ed34cf 92e0e79af866bd5405c17c27ceae722d7c74c725 docs: queue itd-93 for the next drain run (with readiness gates) +971a8ad8158f1288a6747728c5535065c8bddd37 0f02e6e699487ce15b37680e3b1633b9d6419381 Merge pull request #102 from REPPL/docs/next-drain-run-queue +e5cc145cb53552d844a8e006281c9b04906b5c06 911989ee333628cfc5759af6da5ffe8a945a1021 docs: capture and plan itd-94 — the implement-readiness gate +a87dfb9892243e9e069249d512912c63081937a8 0a99a2021c79347b5517e3a79b0d0735e1c396a3 feat: add abcd intent ready — an unplanned intent cannot be implemented (itd-94) +3b42d4e3dbc707844b32da87b9ebb5a4188cf608 4da7b1b13406c53b6a273741e92989ec0b87a444 Merge pull request #103 from REPPL/feat/intent-ready-gate +383eb6bac0247ce3f73aa48b9a4e598a0cf537e3 5e31b9749fc755c9c08d283ee0c18f104f0f636a docs: graft class-sweep framing into fix-the-detector principle +2998e39e2b9438532c413a4c225ee4ba5f9ae9b8 a1369158789e9fd3ca312454f641b79c1f95337e fix: route rules.SaveState through fsutil.WriteFileAtomic (iss-82) +372849cf45ac5a9d2ec2a70244e5f0c1f73da0d1 3234f51877782faebc765877fce3245e953fa2f2 Merge pull request #104 from REPPL/fix/iss-82-savestate-atomic-write +c5bff4047113833efeb785422c45191116e7a3fe 51566371708f28d3801542ebf457f6455b50ab05 fix: guard ahoy.Detect marker/config reads against FIFO and huge files (iss-97) +d2b22728a42bfeecb73c4800cd3ca02e5e1911f9 94fac3ef968256d17575c74e4e6ac5a5e5e74146 Merge pull request #105 from REPPL/fix/iss-97-ahoy-guarded-reads +12ee583108e8817c41f9e2c4608b06ec42b2f8b8 8997875596c8bb363d83b6a2dbcff84ba4cafd86 docs: promote iss-99 and iss-100 to intent drafts (itd-95, itd-96) +84a8eb4376600a9e41a3bd8e7536f5a1439f6898 f5d0b0ea276cd49a4935a1344dd6f47512a83cd7 Merge pull request #106 from REPPL/docs/promote-iss99-iss100-intents +74d0cc3cf2fb06f0dae561195e93b7fe15fc48c6 cc7143bdd8d9e23aeaaba487946cd18aefe0e557 fix: name the real verb in the history-store bootstrap error (iss-58) +646669c9cd79def55eed9307ed7bc9f6dcf428b5 26d13f3ceef52142589cd5d666c9c3a7036f2c32 fix: guard the intent quoted-text create path against typoed subcommands (iss-104) +9037d1ef8f9060366cfbcc1990f8ddb8dbccf870 07fdd83eab05a61a2ac05a2791bca69c32dab19c docs: add CHANGELOG entry for the intent typo guard (iss-104) +a60401841f702b52be555738b01d1951819d21c7 9cd8221a353907c2131d9a66c8dde62022dbaeb9 Merge pull request #107 from REPPL/fix/iss-104-intent-typo-guard +32a7227129c1eebce2b6227983eb46e915a9ee6b 2abbb784f5ce303fa2cb37be682d2db23b9ca1fe chore: union-merge CHANGELOG.md to end parallel-PR conflicts +bea94a5ae4ab0e0ce4491bffdfac79f9fcf02a25 4735b1ca9e721192e145f61c94169807a1e2373f Merge remote-tracking branch 'origin/main' into fix/iss-58-history-bootstrap-verb +eeff5eda1a6a3d51aad2bdc0f6250ade402984e0 855dbbe09a80e2e5f345fa7065d8c70ff49a0273 Merge pull request #108 from REPPL/fix/iss-58-history-bootstrap-verb +3719ca9e5fad94fa5af70cbc727b24b09a8ab5f0 bb103aa5934ec113f32f917c82d55c0700a2271d fix: stray .abcd/ no longer classifies as managed-repo (iss-88) +98be999bd3944d531f717a3bb348b0537dbccf62 b8f289b2f91e3ef3ed70d5e10bf304de1e780fe6 Merge remote-tracking branch 'origin/main' into fix/iss-88-stray-abcd-classify +b858cdd305b295466031ee4f89c08d40fd479039 21e4740cc1d894b10ba9fb58f0ba4865b62a75a3 Merge branch 'fix/iss-88-stray-abcd-classify' +029d3621e62aa04d3fa1a47017d0ec3d2a88b873 ea538d9bf3d7f4c0a46a4c1b637b6f187b91cd95 fix: ship agents and hooks in the launch payload (iss-77) +300279b3cced9a89a27fbbf90c21ceb88f518b2f 050fbb75e06db115f1f6e2b158ad6beb5e4645ec Merge remote-tracking branch 'origin/main' into fix/iss-77-launch-payload-agents-hooks +e0714230a0d8a849cf0f4db7bcc2dd2915e57b32 401a831c00d6acb94b006c0facad6e50f5ee2809 Merge branch 'fix/iss-77-launch-payload-agents-hooks' +d98f2e82f972c53f178ec83f22b6f29c5cc55808 b542fd66f72f691316182d0c0d462d45c0988f08 fix: guard the last three ahoy manual reads on the read fd (iss-109) +ef9f433535f64391eae912a56172efae9fa3f056 67efa7b30e115ba2ccd126233544a41cf54bbe3c Merge remote-tracking branch 'origin/main' into fix/iss-109-guard-manual-reads +63e7be116151d11307abc010cb099f22db6ef3bf b5eb405f695b477ac37892d10e14bfbdcfaf1b5d Merge branch 'fix/iss-109-guard-manual-reads' +2d559c4b3e7d89469c8317a7fa1f00033fbd4adf 437c842632709c448d1aeca4b264910c5f4e352b fix: make the identity pin round-trip through the self-contained commit guard (iss-63) +fb6f264f3bea0b45fcadd2f93fc479728b5e23d4 373f7a1c828749a13ee60c8e5c74e964b0e7234e Merge remote-tracking branch 'origin/main' into fix/iss-63-identity-pin-quote-guard +599752439b8d00bb0ab3f6362e5537e96f004fb4 b8a22e0177b5c09b1a80a51a08cdf064c60dd004 Merge branch 'fix/iss-63-identity-pin-quote-guard' +7bb55d397ede6c18e3f209277823b8ffd559f024 99f91c9ca8105ad4875c0eead1e9878f9b495680 feat: generate the CLI reference from the command tree with a drift gate (iss-47) +fcc79ca7d4a82bc9f367c13c7db30542f7b5aeec da10002d25bdb17c8355f9b74642e38cba6d925c Merge remote-tracking branch 'origin/main' into fix/iss-47-cli-reference-generator +6fc206b13d9686c5a418e82ecc07a577521a4bfd b78885813275eb221b97c2f6eaed59517b4eb019 Merge branch 'fix/iss-47-cli-reference-generator' +48cb525b26c87b7a6a22688ce71d388243b634c1 77925ddd9fdc0f3109aeb783e14f12736537c1bd test: isolate git-spawning tests via shared gittest helper (iss-28) +0673185af805efb78af039465c2f47ea4e8cc701 1e019679e621983e500d2710fe9152ef0af4c75b Merge remote-tracking branch 'origin/main' into fix/iss-28-git-isolated-test-helper +48f7810084a8f8a5b76b8fc7e74448a1fd9ebea0 60cdf50df0fc30a17592a9083b34c69375a90ff6 Merge branch 'fix/iss-28-git-isolated-test-helper' +be3965aca453007a90d79f465e652a9d8898e871 ac9a99a79e3590b3dd8bf4e3d059410f6ee89944 fix: apply an explicit ahoy install config-value flag as an update (iss-107) +9d1d9445e55681ded5c78fe8594afc71ab43ab9b 3d29f00524eb01effda291cafb271f87677d7eb9 Merge remote-tracking branch 'origin/main' into fix/iss-107-visibility-apply-update +768b047c628c0b0c1b9570c980586cdadd9dc9c9 e20689e64d1e638d14299a71413f1997cc2883ae Merge branch 'fix/iss-107-visibility-apply-update' +341e30126a2e3dde560bf3b57e7820a73e3bf6b7 80d116acab3dfc508ba80b64ef79776c85d38200 feat: add agent-observation as a valid capture --source (iss-57) +26ae3f881241a84b9924010c0211ee8281d84463 e2d233133409c293a2120d6085bd463aa6502b30 Merge remote-tracking branch 'origin/main' into fix/iss-57-capture-agent-observation +da5539e007d5db045f2410b7055f0a88bb394f81 e6cfb959d460b650992fbdc068d5b1604dfc3809 Merge branch 'fix/iss-57-capture-agent-observation' +2ae43317276e73ca7dfe5be9d915b0288a8faec2 6061c8d21c40bb11a3d03b89752401ed18c6d447 fix: render machine-output paths repo-relative, not absolute (iss-81) +cf61f43a4e990d719edf85caf2cbe69fb080f756 49eb6211dd3f15e98181c0674f86af409924fdec Merge remote-tracking branch 'origin/main' into fix/iss-81-repo-relative-machine-output +d84b3af91a641f627550705b9da5f29881433eef fd07cb9a93c49c82f122b6d0c9eb87390a0609f7 Merge branch 'fix/iss-81-repo-relative-machine-output' +9693bb1df0c4cc8949e76333bb95b4478d6544df f3e01f41b83149e8922f7cf0600bbee594b91c6f fix: GL002 stripInlineCode blanks paired spans only, not the whole line (iss-106) +bc3af9849ff418aa26da0cb20d31bebdd1f6458f 5a2ee75a54fcb04231584636776566b20045fd59 Merge remote-tracking branch 'origin/main' into fix/iss-106-stripinlinecode-paired +f8f8cc779d1f870093582568a7cfa8157be4cc67 b9c359dc7694223fabf25722332b33a7be333934 Merge branch 'fix/iss-106-stripinlinecode-paired' +f61a736b032bdddaa40c130d7cd603edcf1f74c2 c1f2e96b4c649b5be5774240eeea9561fc735f51 feat: add issue_id_unique record-lint rule (iss-74) +7bdde5ae5a217efa740a1e707a457a7df6d552bc b74d23fcc613e8110bff645e853bbf6cae26705e Merge remote-tracking branch 'origin/main' into fix/iss-74-issue-id-uniqueness-lint +cafa9a8558c903516e796e0a5ab5a9b36ab6c2b9 cfadd341be8cdf21e857941fdb59d6d6f5e7fb87 Merge branch 'fix/iss-74-issue-id-uniqueness-lint' +9cecb684a7d1e00c51db71845d6c7c723aa2d03c 03e4c9ba53de316e2eca68db4d863bea62e118d7 feat: require a machine-readable successor in the record-lint banlist (iss-51) +014f5db94aafbfd9518bda46cb1b4ab239afe9db bad9c608a9fffaa0f67cdc9ad99b3153a30c8713 Merge remote-tracking branch 'origin/main' into fix/iss-51-successor-ban-schema +7ee1cfd7fdf772468320e21facd5be1a7f5c970a 2e33ae168d8294d6ab2da4c51f4fabc58e98976f Merge branch 'fix/iss-51-successor-ban-schema' +ab620bb697a662d89bdc300b999a306044c9ec1b 0dc8d271027b5411ab5a03ee44b096c509c9ddd0 docs: plan derived versioning + auto-generated changelog + plugin distribution +5ee2579a5025493bc87ae96f6a2c85d227caa139 b37591a3121670b9634cfb3acf7546f2fd85d7d5 docs: fold grilling outcomes into the derived-changelog plan +69577f6a90c2c70ea9b7c1e7a7de873a9f56ee49 13a0dacabafa755fdde073b4eba2264f58a87b62 Merge pull request #121 from REPPL/docs/derived-version-changelog-plan +e73d7f97a79f7aee84eaa34a7ab2310a863b53ac 612e6d08397ea3ffce5cedd44c06813c58fa7aa7 docs: fold adversarial-review fixes into the derived-changelog plan +82f62b637260542d94369472b86d5521b1ba6338 c821ea6936e7b10a046585d880f0d45cc305a7ed Merge pull request #122 from REPPL/docs/plan-adversarial-fixes +e98d7a095cab974b07e5c8ed410f2ff63e297c2b b3fde47ea13030e851999c8316a46fc298e8f39b docs: plan itd-73, spec itd-67, record the itd-66 deferral +0db4eb1a44f0701e7487c2e57a4510e6d06b1d35 7e2006c0934cb615dd5a1c72a35099e4e493143f feat: derive the version from each record's declared impact +09a25e7ca739098debd3d9e312305d4188d9335a 402c0601406e82e291e41d5d31759c5c1ffa8f3d fix: skip the real-repo derivation test when the checkout has no tags +30780cb3f816b1f009822fe99bec9cf1464700f8 e1078bfe154c0decef9979934c244e2ca838f228 chore: plan itd-95 and itd-96 (drafts -> planned; mint spc-10, spc-11) +2d5421f27fdd522dd1de7d98aaae2bea4e2db5e3 017245edc7b7dc8d93881db7323c41d537ce3466 docs: write spc-10 and mark itd-95 additive +3fd3d18f6bde671e10704a3692c67554592180de e702aaeed0f2bc70b60359cf7d13e14b66453e84 feat: ground open-questions on a repo's in-code work markers +201eb8d9d54243b79374a264e35de548fda9c9aa c9adcfb6ec9d1149d0143fc30037ed1a3cda1c85 docs: write spc-11 and mark itd-96 additive +e58e3f240443add2329bd3ce6e4a690b76650ba4 9d3bf0179432a6d964c6ab005f4e489c7fde737b feat: ground naming and internals from a repo's conventional docs +688a9a5591d528ca4c5dbaabb468a7a681960884 6af4e57a63b8dbdece110318d87d48e78234191e fix: bound the probe walk by directories and depth, not files alone +a52888bd603fe72c3c47fad5bebc359cf79551e7 ff0dc3fc3f989fbca8c59ff972a28be0cb0097ed Merge the walk-hardening fix from the itd-95 branch +c9e1f7deaf211a7bfcabea3599c0b3faa4a82020 000fb71853863b04397cc1217d978c9eba1823aa chore: resolve iss-113, fixed with the walk-bounding change +30628d1cfe136d899cf02ec777a617c746a9f985 d8ddedd5e86c8e0a9bccb021499d0143910d5091 docs: record the tier-ceiling and walk-bounds decisions +66be7be0ffb42b667e9d438e7898a8103063c2d8 701ead2785ae8dd6f2278bca747e8eecc6739e7d Merge pull request #126 from REPPL/feat/itd-96-naming-internals-adapters +e0a30b6c360c0d5d48a033ff5d9d4e96b89ace23 7e5c6bad890b6275b35bd42d5e08ad6cb05c9868 Merge pull request #124 from REPPL/feat/itd-95-open-questions-adapter +62f1165a7841135a38326f77913d4ae954961cb4 42f929855176e778b769955d5c07078fdb781ee1 fix: renumber this programme's specs to spc-12 and spc-13 +f20eddcc45ebec93cfa4a89fe2eb4d325d1fda24 98c7043789ed4da179f42623a596e4ef039c35a6 Merge pull request #123 from REPPL/feat/itd-73-p0-plan-intents +da5e5c68f2047c1a1cbb470bc42b9e434ca546b6 9f50485020b68cdf1b4682d272ac8effc44226f3 Merge remote-tracking branch 'origin/main' into feat/itd-95-96-conventions-adapters +35f13a5d165c7446e2d8c95911aa7e18827c386b 61b756683f6b8f3276121067810f5d27e6afd36b fix: renumber the walk-skip-set issue to iss-116 +655db3421e96d01d2d8d9177a47b7041c25a170e c5057a87a075f0c9affc43662bb4479a7a576970 Merge pull request #128 from REPPL/feat/itd-95-96-conventions-adapters +ad3fc38fa482984fad68e53e1b96f680bb9de044 8a0495084d20cf27c8327cb117ffddbd5ab4f965 Merge origin/main into feat/itd-73-p1-impact-derivation +2a8cd6d6fc59e4f0f1c1896430a9131c3950c4ff e258538e7b500a34121c01cd6685d55354bf9e8b Merge pull request #125 from REPPL/feat/itd-73-p1-impact-derivation +2ab1a4d67aaa0c1046beffa8ae3dda44b12e1159 3279cc579bd78efeb0c4d6876bf5b9dfd72657c5 chore: capture the impact write-path gap as iss-111 +5a379b287721643a660640153bdde66430d515c5 3dfad5567a3a9f85f998a5c90af6b1637cf3c2a7 feat: gate the release on a structural surface diff +6afbada210849e04e720f426eb00f05ddc39108e 69c4812086d71ca39df7f42b0106f2626a1f1a1a Merge branch 'feat/itd-73-p1-impact-derivation' into feat/itd-73-p2-surface-guardrail +939f254b5a94abe2e0864817feee380bad010b2d dce924d2c398ecb482454398dfb0924b834de620 Merge pull request #127 from REPPL/feat/itd-73-p2-surface-guardrail +6268da990640d9109d45741c610e2d2f9333fbb2 47b4a0e66be1a1bee1dfa7da14d689ea20a7ff78 feat: cut a release with abcd launch ship and a derived changelog +0fdf38ea3e0fa0931bd48b3665703835d0ba56d4 d422ed0506321e06497a6b15cbac74fb9f349db6 Merge branch 'feat/itd-73-p2-surface-guardrail' into feat/itd-67-p3-launch-ship-changelog +91b8917ea3b798bb64e7b3cdc4c66455cdfafa24 1c4f1ab75d551556a16dd5d3b31e5dd42f482b85 Merge pull request #129 from REPPL/feat/itd-67-p3-launch-ship-changelog +ee1508573a3795e0c92ab10d7ced030e5c598607 62137634f7880c7340c7bc48286764d487bad4e8 feat: stamp the version into the release payload and smoke-test it +aa77013d9bb8360a04b5aba7ae223429c35878fe 80692b498324d1e67d3d3e6f55013e6826fd07ee Merge pull request #130 from REPPL/feat/itd-67-p4-manifest-install-smoke +0df923a56f4dab3e0d1615a3097fff531ffd0e06 d7356cc63752d5a14bceabb72756321645ebd228 fix: renumber the impact-flag-surface issue to iss-117 +3dc464ebc264fce4270c180c026d1f3b79c03e5c a47534d3688cef2ce07fec3c66426f494bb506f1 docs: distil the one-writer-per-file principle +94e1276b07fb3cf8281912725a1bbea98fb87c42 93b01dba23e2acc97ef42270f21226f11af496e2 docs: capture the merge-retro findings as iss-118..120 +d5243fe795482967367002f821d6b62642e962e8 9e2858832bd869d60a0c988ce699df616d50507b chore: roll v0.4.0 — the clean-cutover release +68ce24001a5d773a31ef44561e557863d4d53871 c761979df99f33d9200e28d0f8761896d8293428 Merge pull request #131 from REPPL/chore/roll-v0.4.0 +5108dd99bfc888cae7a6bd8405a0fb04a3ea9fa4 4d9a1630c7b908e586ed4e2a9dc02a200afd319a docs: reconcile the brief's surface chapters with the shipped binary +f0fa344a9acb88e47e3ce0b4439eb5f81dfffcec d6f07ef79910b30a885a9162b0532061ed03a784 docs: sweep the remaining brief-surface discrepancies (round 2) +0135d02f0f6c49934558f702bd4291d853efc88f fe4b5a906ca56d47e385c8e4825e3d2e3ed6d22b docs: disambiguate predecessor spec citations and finish the surface sweep (round 3) +45fb46828f1429e62a160a5a3c86ed33a76ac3ff ba658eef2a6a3ccc289cf6062c72c418abae36fb docs: fix the nine round-4 residue findings +fa795d5497028210762bc331177c02c075929055 ced06211602e624d93eb595b88a3d4ed6c2ae4a9 Merge pull request #132 from REPPL/docs/iss-121-brief-surface-reconciliation +495137594b45ac0d603c15e9fef85defa5bf681c 101b66a1837c1b8e8ea3c2b3d1bf3eb97a347c03 docs: record the v0.4.0 semantic-gate receipts +3fb1ef9fdd31528efb5e478f7cbf5553941e4df4 ed6421396298ababe1788acf39e4454eb5af8fa9 docs: restructure the README's how-it-works into Roles, Artefacts, Process +79ad41c0c74a32bb6efc94cc6e021da2d9df2980 62e5063ff1475cdc913ca4958ac7ffca0398db22 docs: fold the draft's subsection pass into the how-it-works section +87cd9b39aa98261899047120913244964a74d76d 3246eda81de041c2a79d04289b0b7eddfc5d3830 Merge pull request #133 from REPPL/docs/readme-roles-artefacts-process +3d0db162f49b2b92bf2fa5dbfb05f594598c95c2 b53e8487ef296d9481454eb8e8b2b9d2f2f30944 docs: record grill decisions and the 2026-07-24 next-run queue +31a309275332a825b76ad1d1a3526f4265722355 d2606b4aa0c39bec25334c5f8172141261535006 Merge pull request #134 from REPPL/docs/grill-decisions-next-run-queue +e9a10e60f959b596936da56c47b4798c97a1d4f2 a2b9643a66085108c9d5cd654c550d78aa53f93f docs: file future-direction drafts, review captures, and fix the run queue +11ad3f8ecd26a0bd9edf985cc51823aebe6ee245 41588bad0032fa2cd51d4dc40e709fcbc0eb1ced Merge pull request #135 from REPPL/docs/future-drafts-captures-queue-amendment +38ced153630856d4da11757a691d471895d5b099 509387c20131f438c7fbda30a03dbf12e8bca07e fix: let capture resolve and intent seed stamp a valid impact +510f63c1bde9f72f75dca7315e056f2088462bb1 13fe957d00b83a7879aecbe21f8ec1c49d666321 chore: resolve ledger iss-117 via the fixed resolve verb +cdb1c96828900e6d10dd0fb5321a17e53759213f d6741c87f717cef4c63bd87ac12bf6612d7c2ddc chore: capture iss-126, the intent ship-path impact gap +1f23b37c088379ffd7613b54f327daf7bf62940b af97c42e178346f1a334ae4da957ae34d42587cc fix: bound, speed, and widen the probe's recursive file walk +347f78a764c7924771322b20a604775df8e9cdba 00262a823295115ea8771623f5ffbd9632f2d38a chore: resolve iss-112, iss-114, iss-116 in the ledger +418b7808e9f4086e6136a16124d903268833316a f7caced13ccbdd44271996ea77c9aa711b62f4d4 Merge pull request #136 from REPPL/fix/iss-117-impact-write-paths +f2e56db204bcec984b570642b3c07bdf7c73023d b62de3f181e2516ff75229b94657294f55b40cdd fix: mint record ids across git refs and add a spec-id uniqueness lint +adc81ad5d427fa1d2042f996b96baf8ac327c352 78d461d6dd0e3cf0a10d299a75f5963777bae153 chore: resolve iss-115 and iss-120 (record-id allocator class) +22f50312232b7716fe6baec5b46d5d1763e50b76 c63b6e1159353dd99ebd673ee89afb95e93016fb fix: guard itd/spc id minting against integer-ceiling overflow +f1210bd3256ea8f0a5ad13733b7d11309d2b7e6f 3d350fdbb87fad7b59f04a4e8331fa8765defc26 Merge pull request #137 from REPPL/fix/iss-115-120-id-allocator-class +df74ccee6e979d1a4647bcb97f53b41fa898c245 39dea874171f1034f1316e13c4be6b182abd31a7 fix: serialize capture orphan sweep and commit write on the ledger lock +2b2a7d3858eb220529703750ebbce9d4a1f53a13 9d78089f166c92e68abeff7e9109bb14546727dd fix: lock the history-index load-modify-write across concurrent installs +edc4bb865ec30ecbf3588b1bd86297bf4b2084ad 78cbcf83f95a04f8ffa0cee3732d4208df7aee28 chore: resolve iss-101 and iss-102 in the ledger +853878a92ea3664f86b07f81081bf9d1804ab231 774758c34eb247076f90fe40255b6a6ba29f22ae chore: capture iss-127, the repo-local LMW residue +0576929ad2191c05f2a678d3dd10e482375bbe35 15b898a925d564c73d8b52e02b0ec561d580a2b6 chore: capture iss-128 and iss-129 from the lock-class reviews +a532da23123f0a9c42f8acc2a66d372765bf646b a8215332e915af260f1d5a7f746dd63ed0ddbf56 docs: correct bootstrap-seed comments to describe write-then-link +1ae055f3bedf9da19ed310d6d8b9fc59dec1794d 6f09ef20181dfcd5ff2205d696eb3023fa1fdc63 Merge pull request #138 from REPPL/fix/iss-101-102-lockless-lmw-class +92602d4e0b674d1f736840520c1f26d40ee425ce 59ab328e21ad81c54fc92d5dddea18127b68458a feat: add track-latest dev install mode to ahoy install +a744cf39f66ba9acadee8ee55849bc687ca7827f ad63880bbe74d4f0e044538cf0569dff50b8cbca chore: resolve iss-75 in the ledger +f613fc594b2f070f736d6b02f48f169dc3bb0349 f6e221bda40621cf684465fa8ff45e36fbafb3e9 fix: honour declined ConfigChange approval on a fresh --dev install +a792429e183dea25a1603d210193f4da50a96c48 80a89f1b8efd10b6f3cce9a54e4e67e46b3d3a00 Merge pull request #139 from REPPL/feat/iss-75-dev-install-mode +8d76603a51201b0d76f448b0b71ba219e218eb93 fffaec3e6d26e59417e27dc776eb49ab5624403f chore: resolve iss-35, the brief-surface reconciliation +c98a32935212465ec857ee6c21d4f25f1b2fd6b2 347baebb7d9fde33ef6c311c2730aebc5c9ab841 Merge pull request #140 from REPPL/chore/iss-35-ledger-resolve +99719184036dd4e2a1fe5dadc0ec9444248a6e9d c0e68dbbf9f1d22899f97acf634a0be71d1e846f feat: pin the iss-35 crosscheck gate's scope and depth +0c3567449b31cd95f1dcdde59c620da26e8fa812 52e87e614c69a17c0dea2149857697d06a67bd4e chore: resolve iss-122 in the ledger +3b11b2301b7a671c8ffcea61ff6e083f8424fe8d fe8009ca1304591831351587dbdea217c1f2740b chore: capture iss-130, the manifest-deletion disarm residue +216e8b231b6bc3526ea53115d4a93c46c2041778 727fbb349e9b070836bbdd0a00c0a6df4b605a65 chore: capture iss-131, receipt-gate hardening nitpicks +3ddd6108576f07aa1a57eb8d4032f8367cbfc6dd 62f6c3f3bf706d108c972134a96a96c15539507f Merge pull request #141 from REPPL/feat/iss-122-pinned-crosscheck-gate +0b73cb5c6377ec0f1ae325025a767a5a10e76fd5 e497553baf364b17331cbe95bd6582751cf8b2d4 docs: amend and promote itd-93 to planned +5640c5dba119c777a7c042f37a04854a95392fa4 31db2c1d4bc680e21e2df70009c60e8a74fc0529 Merge pull request #142 from REPPL/docs/itd-93-amend-and-promote +60f027b6795f62bd130d69852b5c35872c8ceb37 d19bfc2f01b71f2deaf002b122a3b78c38d79583 docs: ship itd-94 and close spc-9 behind its fidelity review +7b0a72bfdacf2c115386d5809d7f825444621239 8cf01c4c5eec9ab8a32d61ddacb7759b2338671d Merge pull request #143 from REPPL/docs/itd-94-record-catchup +d89207f7aef4d6e24df2be1acddf63f40bf6ac23 9a6a8e11cd2645f9f1d5b658490f184e1459d9cd Merge remote-tracking branch 'origin/main' into fix/iss-112-114-116-walkfiles-class +b261719b3231373bc2bd0a6f4cf87207a78dbc46 24d115ef95052c516c0d65277c3bb2237f50466a fix: require a delimiter for bare TODO/FIXME markers (iss-111) +fdb4d2a689c2b98634727c7fc78d28b4d8ee334e 763fa120b8b113ee35182b4c57fdc7f735800c65 chore: resolve iss-111 with fix impact +e4158bd797ee7c6646edbbb9822bdf8122a36b0d 39728c2d8b02ab34d0fead853a14f46a375487b6 docs: correct iss-111 FP figure and de-self-match the pattern comments +e448270b642c2c43d90753323f6ea58517236d67 c134c051271ec33ce9c14018e00e8b29c313111e Merge remote-tracking branch 'origin/main' into fix/iss-111-marker-false-positives +6d303dd138f8773bc73690b0fa741ba870bf9d55 9665ae9ad4e6a6886efe4fa08947059b3645c30b Merge pull request #144 from REPPL/fix/iss-111-marker-false-positives +ef96cf3420188a72555cf6927b8647fde563e515 79d70c0df1c616fac608f69791162270f9ef5c23 Merge remote-tracking branch 'origin/main' into fix/iss-112-114-116-walkfiles-class +49b28e06d1ff824edc09ae956eb36c233ed11b11 8ad095e9e6387144e0dd87a44cdc1aa604837fe5 Merge pull request #145 from REPPL/fix/iss-112-114-116-walkfiles-class +194a706eed78f7d4fad640f1a79d57bcd5bf696c 2468ea19daa458d6fb347550b7d11130a6c133c4 docs: record the itd-88 lifeboat coverage experiment +7b24b98befbd20440b335a96d0154bd33cbcec6e 9f6ae4cbe92b2b358cd30b3652a4d6c3d98ca35b docs: ship itd-88 and close spc-3 behind the coverage experiment +85fb9e9e406521de8ec5410972cb2e0faecd58e4 c009aeb6c829e5ffa9edaf6d074df8f3a7d6a796 docs: ingest itd-88's fidelity verdict into its Audit Notes +d2a4217f9c6dd98c08040f9c3b7065e4cd089b35 82559fcaf9704c3ad937760bc8f7248c6d8636fa Merge pull request #146 from REPPL/docs/itd-88-coverage-experiment +0c8d758197d17b5a27b1dbd605a08f97202300ac f72daaba22d5328431796b0905d13f35feef3015 docs: append the merge-window evidence to iss-24 +32963871394da062a56f8883827dfe59af2577d8 985ab5d5add85191b82c5239e773620dd72f2dc1 chore: capture the run's six deferred review residuals +3f0ff9b084ab52a975ffbe56635f0b4469ab3662 8ed92df8840118ea7893007791a28fe944bd5edd Merge pull request #147 from REPPL/chore/iss-24-evidence-and-run-captures +1640986ab293a58f2f8097ca5465f934034853c8 32dd28ce2a4d806c3ea70f2684d612ee4d39fc1b docs: plan itd-100 and write spc-15, the terminology-crosswalk design record +5e69d19b08dc3610e2bd64c18a14235042ca6a97 67a649980df2ab4d8fd24e26a323115b41356c78 chore: capture the crosswalk watch items and a brief contradiction +7a74b0d6a5e76e980b6cce9f7b309fdd4a420bc3 9ad27b9314b5f0229a77b9fe1d1f60727dd9657f docs: add the terminology crosswalk (itd-100) +f6d8b22b312f411a4e1a6b9a7c34242cf8cb53cd 213a549b368ebfdea3021050ed104d68fe55f0a8 docs: correct citation drift found by the validation sweep +29984022dccaddd32520c7287bf7d75bbe1ab883 f4506ad8a9132a07205d33fb6f04082545e9e9ea Merge pull request #148 from REPPL/docs/itd-100-terminology-crosswalk +d324f18502f73900fa39da64558798fac228b6ed 3c0ca94663dfc63d709f35d3bd6b7ab71b6d8e2c docs: file itd-101, the deterministic citation gate +8a754011f6985a5cc39fb14049f2ca3403a707e3 a8045b47ce83857947027be7d49490f70b29b2c6 chore: capture the tagline three-variant drift (iss-143) +352b8d54e692a271d6b4d04b4f1f535d7d6361d2 181cea780d9f91f68efdd3f061f90980aee2e658 docs: file itd-102, recorded repo identity with a positioning check +16f15508a580760d8ea3c6c6a8d1294def405c30 e7108fdcce52db7aaf3bdcfeb481912d148caf9f Merge pull request #149 from REPPL/docs/itd-101-citation-gate +d4d629a9034ce31046342ce9200af9d4f314dd8d 17b217dd8f653b36685cbb06fac6b528b04b82b8 chore: capture the shell-hazard incident (iss-144) +e1b27e1f39613a6762c1fbb4dc7a6830a4ca618d 9d52ab5ed436c2db0994280da6bdb545581a2e74 docs: file itd-103, the shell-hazard registry (teach + enforce) +516e2e3f596d296335bd66e9a3835db601da7fcd 44dd794727145a58f5967530b357e4a9ecfa75a9 Merge pull request #150 from REPPL/docs/itd-103-shell-hazard +1cd6aee7a225a19cf343772cb466446e35c4286c 81e34b7eb8f8a3f0b07eaedcfe2d01941407dd79 docs: salvage the 2026-07-13/14 ideation-session record +3f9f5880aebb67ca77fd02ac55726cde1eb408a0 c65cbd6920cbe27d96826c2c7ef5956fcc60e0f8 docs: default unhomed artefacts to the local tier (AGENTS.md) +982ac103c0dcaae514a1070548e3d2e69cb1923d 317d09fdb2e5d73784407ffd0a7f3f109c9c7cad docs: file itd-104, the ideate admission gate +ab8876a8ade93d290eafc4522fadc2d0dfd6d5d2 8b5c1efe71fdbb2da6c107b6e0418344ca5d70b6 Merge pull request #151 from REPPL/docs/salvage-ideation-session +567d4ada76bf820682df10f66d9d660613960531 9424936a6018c1b4bfe6f77ab8a36f1875cd9978 docs: ship itd-100 behind its fidelity review (spc-15 closed) +f301e4ac08ff1664733249301c0a1353b7864b1b d4dc3cc06fa49593d89afbded59b5f3b15c80b0a Merge pull request #152 from REPPL/docs/itd-100-ship +b26fc551bea30a9d5fc843052bbd0f77b092e885 c94be775a41a2425bc6c7c2e418fb42fa9a3b304 docs: settle the itd-101–104 grills into the intents +e946cbcf5869345c6b27814e526d116c0d101465 db5ce05f0c34a058b180a973f51a6ad2116cbe9c chore: capture receipts-cannot-gate-maintainability (iss-145) +48a35247ca222957cd407e70ba60a428e2cbb1b3 2063154d94c895f000f7d1a5a25023a6c4d3a864 docs: adopt the canonical tagline and consolidate the three surfaces +131a2e00f43b31b57b7ac96c5ad98e24848b4f4e d46fbbaa5d71992c164e6dfab7dfcef3b3d45df6 Merge remote-tracking branch 'origin/main' into docs/iss-143-tagline-consolidation +d084b7355739f39539e1b2fffe62f59da6e78506 0591e2fbe8e836892f2c5efe4fe6b3ee940dbbba Merge pull request #153 from REPPL/docs/iss-143-tagline-consolidation +3b5917d1eccee4ce7852c3d4267502f666d60b81 afd1eb062120669e039c673250fafc5a98062383 Merge remote-tracking branch 'origin/main' into docs/itd-101-104-grill-settlements +8a7caf4d1fee6674836e333b0fc905e9e5774520 baf508790ff4139a1e894c4080da41beb32c65dd docs: record itd-93 Branch-A parity decision +46fd4bcb43fd7eb4e7c22bef3acff0ddbde92186 c878f965524fc22a7f9d0d5fc7684fd6bd69b12a feat: scaffold template + self-scaffold parity for the release gate +f722374b4ca8eb95d2078056a400cfdec5147b9b b06e1749b779b099e154b9a6f4d6f00a4747dd32 feat: wire abcd launch scaffold to the CLI and plugin surface +da7ff1621a874a8f97a12fa3caca6e5688463db2 fdf03eaad8892383e804baeeb9572baab4f06130 feat: bare auto-release grants only contents: write to the reusable workflow +ccd103662deab8d802c26b01cefd8620d5fa0f27 d5568e1fcf6b9ff2ff772dbfa89a149d6f14a644 fix: scaffold report must not claim an unwritten file was written +effdac70d49963b63aec6e84692c9852c0728ec9 3e1f29170462831a4efb96e9b3c2cbffc40fcbbc Merge remote-tracking branch 'origin/main' into feat/itd-93-launch-scaffold +d1f3cf7dc51e906ab2257bb44c5370dd61757588 ff44c6c897ae207843a13ae824127e4ef7ef5acb Merge remote-tracking branch 'origin/main' into feat/itd-93-launch-scaffold +f06de9dab9fa261e620c2c7eac02eaf24e00f415 c28f4b60917b96e50b78e59a91e6ffbc21ab7f39 Merge pull request #154 from REPPL/feat/itd-93-launch-scaffold +3aee1e456db2158d16dfff29d7a945cb58229eb7 9de26df92b4f40f1e2330d528e38324a86a1c9f2 Merge remote-tracking branch 'origin/main' into docs/itd-101-104-grill-settlements +6e1e1e4f33e12c7ff18dabbbfe27d2a66e761d55 f331bef5ee2b15370a62fcc2f70740112466e1eb Merge pull request #155 from REPPL/docs/itd-101-104-grill-settlements +7e9e85e4268e32cd3cf1fb94d2cc8573f44506b6 29c617575babff896dda111f3afebc0d8a7e3e7f docs: plan itd-101 and write spc-17 citation-gate spec +aa4c491fc388bfc61ac1e7a796378f90665ff091 846948eb146a7eec427b8720303311abf7d71cdb feat: add the committed citation baseline schema +8e187c0de168b8963695279ac0f405538bb1a44d cb2c88a7247268b42256145b2092d4cbf911fe7a feat: add the zero-network citations lint family +a76f7e20ccc62eef2aef852f28336ea3c10187d2 0bae477729838d5905ad656a09fb4d3ccb0498df feat: arm the citation structure rules in this repo's docs-lint config +3120e6034c23e337fe7efb0394927554110a6de2 258b7834ef3ce7f45daffac05f556c92a03a7acb fix: stop the DOI check claiming prose, and read wrapped citations +ffb83cf961db4599dc57b0ab4ddccea4a5e2ab86 6ab1eb8508a18a47195ad86a9341e95664826a38 docs: record the four design choices spc-17 left open +43f20605d4a29789f1035b7913a8a64bf7b071cc a504e7dcfa02a7d566ade345a4c8bb356712cc8e refactor: extract the SSRF fetch guard into internal/urlguard +c505133873e8b258c9a200f4798ad2181e9abc84 9564f9b05ede59bae74c937b1650df12094e66a0 feat: add the citation refresh engine and the manual-queue receipt +e90a97cc0558300dcbdf5a8c88cfd02352fe45f1 28a323d7a34dd5803a39c243debe9c9ddfea5e4b feat: wire the citation baseline into the CLI, ahoy, and the release gate +dfc5537261cb592788848b481961ad495236c0c0 453ce6ed514e81b8221be9e7ffed594cd200e077 feat: arm the citation gate and commit this repo's citation baseline +39f615889b4058b4dc7b70d8510bc5a3480ca34b b486012894af1ebdd099df7ad556435ec3f7e259 docs: describe the cite verbs on both documentation surfaces +6c5aad2eaf6e1ced71f3ad6a6f003142cf593a24 1f1a7fdc08b5998cc22c7c60291ac84c5164285e chore: record the receipt one flaky source did eventually answer +d7b25dadc0aed08e7937696877bc9ec060d05778 b8f6573e007796fc24c159c6d6491244aba83d85 fix: close a path-traversal write and four record-integrity holes +bb1d168e1e110e3fca9696af39e8a832d3848b0d 977bc3d3b2124af356498346d68c9d8c4a48d1fb fix: resolve containment through symlinks, contain roots, and fix the guard +1dcb7362d39113aab321c45ca2fba763b7149c58 cf022374e6dfe3c637114ec3dfb83f8cf94a773c fix: report a refused redirect chain as answered +dfd172b0992fcace06371faa2bff1dffb502ada1 02548bddaea9a5eb4a5b8a176faad96c7e9f2499 fix: contain every collected page, and stop the CHANGELOG overclaiming +e13d7c4592ba91afa7f77583fdab9014beec78da 606b863706520f5f4f0fe9c9895d015e49e52048 fix: bound the page read and stop the seam punishing a silent adapter +78cc4bcea3f9445ab2220060193446c2c243a77b c4a104c3a5c185ec2a2a6919b030f343861cb099 docs: record manual verification receipt for the harness-engineering citation +555f6ed37e0e35a3e7c608a60db07a3c8877f6c7 4e34a7f34117a6246045e15a44f7fa64de4b5268 docs: plan itd-102 and write spc-19 repo-identity spec +8933a2867ce17f626a8f64fbe8b2df04ed15a683 d42f8ba109ca1011d137f3d432b9e6ab315023e0 refactor: promote validRelPath to fsutil.ValidRelPath +ef602a7d05214f7ccb3e2b44cf9048f126b77a72 ef5c13a1c56a2b9eff7c1b24db9533a8e7a2c88a feat: parse the canonical identity block and check surfaces against it +0f5bef83cb79306311446a04452a1667cdb6e588 474fc3cc0de933d76626d2b2fb12888c7d2bd78a feat: re-render drifted surfaces as a proposed diff +1686a9bcbaed7208b8e8770662d8916ee359e272 c8a1425914f81a456a7ec283d41c9fb219dcc12c feat: run the positioning check on every audit +7af5bb9eda2bdbd1e4afa0c798999310e1283bc1 a1bf7cc18dd85fab4ea82a62fb2f1df458766333 feat: surface the identity family on the CLI +057956c5679f7ad12467d598eabd5deee89fc99f 83fe858a623d5cec2f3d18d171c1c9cf09170ef2 fix: keep line structure when sanitising a rendered diff +dff251090b306ec150892cb016c17e4953e776e4 f96f5e025d236c2f64e8a5f530a7aa8c786b46ee docs: point abcd-cli at its own identity block and surface the verb +0ef6de324d087bd02a6dc4a873aa10195a11ba2a 827c5206d545a2e7cd4b668c140675338da0dc41 fix: emit a unified diff that patch tools actually accept +8b67070b1f56435d2a75081706e0c95a025a543e 094f203ed137baec3bcc161dcbf60712d2551354 test: prove the applied patch equals the proposed content +857cecbbc44464a6f05555d5e75499535a59866c 3a2813bd70c2d88e522089f2e54f2b2d4fff08bf fix: keep CRLF on the human render path, and refuse an incomplete block +b00c796516d5a967f9ef7cf33e123864f651be5c 889ec32bf42ecef13238375f45e0e58797b8187c fix: contain every positioning read and write to the repository root +d68003714327e42ce3ec4be43fa18db9b63f7620 a95c971fb71eee26fc02c2a2298f73c44dfc5515 docs: state unifiedDiff's uniform-line-ending assumption +328b161fc15fe1fdfb3596b4e7f52e019dbca8a0 4b727036b0fefb21130e4bc8921479e2ccf58f3a chore: record the two non-blocking findings from the containment review +847b4129a53e4cb6e48a88532468ed453c9f20d2 2f718cbf9d16a57a8c8074362ae0dcfdb0b4ac8a docs: plan itd-104 and write spc-18 ideate spec +c5a42f363c0ac7036d85e8ed830106cacba7c1be 67d3885a2917c8a7a4fa005320d5d86a927063dd refactor: promote the untrusted-prose cleaner to termsafe +65154c2942dbc7ed99e65e1e6db4b92d96a3579b 18e68c5e77faeda29a9dd805e1d25dcf7c267cae feat: resolve cited record ids against the live repository record +166f490af298451663e272550ff046a216d0b310 5338ec94f1a2287d621a3cdb2b7f0ab7136e1d9d feat: ideate record validates and writes the idea-admission verdict +cf8194a6396e14b58fa06e37890167d3cc61f676 8951ebb67d7ce09b9b63476670742f3eb06ddbb4 feat: wire abcd ideate to the CLI and the plugin surface +f25baca49ab7c2bf675e80efada206758eb226fa 302dd52bfbafa471bdbdd7e4cab10f836f8538a1 fix: neutralise raw HTML tag openers in untrusted prose +bf425b7564ce7f8bf4f75295c4f1f0b366ab7825 778baf7b6a1ec1480ef12484c8f3ce5bc304cc3e fix: contain the ideate record write against a symlinked ancestor +0d761ac3629279d03d1124db61382e49fe9072e5 4b3487823b16718930fd497d73fe354b400a9d12 fix: untrusted prose cannot shift a table column or erase the idea +a6b6d99b4bbabbe0361a91b69624eddac11beba3 3623bcc7fc8f8d1231e97944eea135c7da22a0f9 docs: plan itd-103 and write spc-16 shell-hazard registry spec +56de5156026d0fc1bb9be48f5a5fb673a70f99d6 41519dd15a707945febc276dfdea041711d60f9f chore: commit iss-146 capture (guard-bash gh-write false positive) +5e2c813e389ff0d2bb092ecb1a4f4d497342516d fb0a5da3f57a650eed533121aae054c905bf846e feat: add shell tokenizer for the guard hazard registry +4a8ac2eecfb7b6f7d0a8258e0ba96a0c7e416bcb 6929afa2f4b55802503628d72f22d54e8d28e2ad feat: add the bundled shell-hazard registry and its decision function +7f4259cb3594765734f8feefe10303e602e878ad 37204398069e386ece7a79525479d871db9b9c5b feat: load per-repo guard overrides from .abcd/guard.json +2640b50dc3d9d335753c74ac15a8f76a14fd8ec9 c7f8776241d4d0de8aa14f63f414211318f4ee9b feat: reject a guard flag group that could never match +3adde8cc1b8b621bba89a54229b947063626484e d791e07c02a0f37d985e60a5b71e30a5dd2d3fea fix: close four guard matching and validation holes found in review +0fe71ab8112da211cfd628678ed6c5ad208771be 40514a9af367d8c2f8812eacdd8579e03b034050 docs: map the guard package in internal/README +9bae2c36ec340ea813af4b7a18e7c2bd1da0630a aec771c30c2bd1b0b82844b6cbbc80f7bff7f3bf fix: hold a heredoc body until its command line is complete +ad63e8dc473af18bf0135fdd551864b06bff1d06 5d1f80ea061de0748f45a176396f7e49e6bf8723 fix: stop the git-clean successor recommending a warned command +83f20a1a7d92b896198c7493aa8f9a38411b023e 5ec9ef6012a7bbf36a6fea3e6a0f0ce7e0f65fee fix: keep an arithmetic shift and a blank line from unguarding a session +35ef1016620582dbe7e56b3c08003acb3ef0de03 5a40f82104a6158d9f641b155153a42b8823a8a7 feat: wire the shell-hazard guard into the CLI, the host hook, and ahoy +e8ba05305892f59d8cdaf0a6592fee7e15e62522 42dcfeb9d5bc0b95d2bce853f8600fe0353b9d6f docs: document the shell-hazard guard surface +d4dd46c2e14d954324e1bee3bdd02181cf22867b 71fd2243b67931cbcbdad02164839feacc6353cd fix: answer an empty --command instead of waiting on stdin +6698f69951f76b71e0ee195c370c643a635e3ebc 4f2632207d7774832a6c255c0f463dedbb94f22f fix: stop the guard report asserting what it never checked +c6333d4773b2021b054743f1fc4fe39671626730 395fd69591850b17d0ef1dd98cd555f18276fe73 fix: close the two silent ways past the guard, and stop overclaiming coverage +4288532cb91b457ada0293e5d84b3197e0681546 ddbf597b20124c8b2f775d98f4f92f54db571f7e fix: refuse to answer from a switched-off registry, and correct four claims +49cffa05e6216d9cbb29dc601961464781e6541d fe10e9d408fe6d87291977d661283ffbfcf46ccb Merge pull request #156 from REPPL/feat/itd-103-shell-hazard-registry +e05a58ef44b970f7d8db65d7502675bf9a46c3d9 a793f9e1b6d68d5bb09fe73e0bf89b93246b2638 Merge remote-tracking branch 'origin/main' into feat/itd-104-ideate +3bd32f7986f15f90aac977a2c1d02a7161d73e01 d416645842380653471484b86c3e674a61876dd7 Merge pull request #157 from REPPL/feat/itd-104-ideate +ca1459805dd4cc3d48adc39433bbd34b098736dd 3c2608f897a79bed6a9a5c5e4a9f04748fa4cc17 Merge remote-tracking branch 'origin/main' into feat/itd-102-repo-identity +3036c197ab0a9d71b3b82b0e50de3b907ed3af83 6342d48dd2975d9b2432566d4a11314ec9942971 Merge pull request #158 from REPPL/feat/itd-102-repo-identity +5c467fc051b23283b8c14c4540b2c9ee2273416d 04336f2bddc729c9f3894c3370339c82381b8aca chore(deps): bump checkout, setup-go, attest in workflows and templates +91d52c44c23e88dd01ea98ee9b69a31e357317d0 8c52fb57027fa166a3de5044262fda752497f955 Merge pull request #162 from REPPL/chore/bump-github-actions +4a0694e138037b19eb65d359e695650eb5ef7f2d 7333e48e68043caadca02f74581484a00703616c chore: ship itd-102/103/104 — close spc-16/18/19 +1d915554de44bf6376c7769a43f6ab7c8f1eab28 816d0f80d8427aa6cf003e93b1f9078c7c4828fe chore: cut v0.4.1 — date the changelog, fix surface links post-ship +b1dbe01902d4a5658cd4269a7e933f46306fa68b 5cc421d0ee613c4ea1a637c49f06620376889f03 chore: ingest fidelity verdicts for itd-102/103/104; capture iss-151 +63424a6cb217c2d77872a0d2fe2ccd26ce9f04fa 2855f3715c081733d67d387e946d6488a4546180 Merge pull request #163 from REPPL/chore/release-cut +e195757c15a5efdaa2967b74cf3be722a3432027 b07bb7414edb0888f73be6d258ba90207fc82150 Merge remote-tracking branch 'origin/main' into feat/itd-101-citation-gate +5abe5b37b389a08c0145d494ff5472e028878a2c 9baa5454fcb089895f8e7e632534800716dbaea7 Merge pull request #164 from REPPL/feat/itd-101-citation-gate +ba5e701f75976b38180d25d1c0ae990379eaf77a 155758080e722d72bdf33b30283976679303ec69 docs: bring the brief surface docs current with the shipped v0.4.1 surface +62f40808312d59c435649453a7bff9e8b9d5ac67 5b670955a8191ead71405ddc6cd220bf680af025 docs: list launch scaffold in the brief's shipped-surface enumeration +9f759c1f54a62fc204f75d2f3102e71af2a95cfc 056f6f683090ac98c9359691905a005ca11fc45d docs: the CLI reference is generated and drift-tested, not planned +9349f17fb17d685b8c7e9bc03210d0b498523eb5 ca04b50014c90b35efebea7b05abdcbdaa7be693 chore: track brief-currency residual (iss-152) from the v0.4.1 release gate +46891641c857e780e815db87176789c123a5aa91 f71f1c24e95cce7007b062d3b0a83facc5eb69fc Merge pull request #165 from REPPL/docs/brief-currency-v0.4.1-followup +26b4e640f911055b496cb61b8df5b2f2daee0e16 b28f4e8140f3e24d8dbf53906a62fd07f28faabc chore: record the v0.5.0 security-and-consistency cycle +b633d304bdda65e2b6960c02e9c2381b6eb04a78 8e4d2eb5402f4732baea5956fcee76159d99461b chore: record the docs-currency HOLD capture for 3de5148 +90d606c6e1af7a8cf0de6b6e883518b18f7773e3 3078cc736585fa466e16b7da118d0d5f1f9893bc chore: repoint itd-74 links after the drafts -> planned promotion +9dd28072f3d507b963664167322cdb48bd41ea96 8db8540cb3690eb30f684d46da8b63b900de758e Merge pull request #166 from REPPL/chore/v0.5.0-cycle-records +cf265dd91ffaa8ec42bd06ef69c7c9ca83891414 62d735d693b60bac7f6c0e8f1ca17bcbf5cd4aed chore: draft itd-105 — plugin hook binary survives install and update +906e2d59eac7de88bf49060a90694b8f5e7742d7 9eaf750dbd77d4e572edb7c16f5eb867100b2a31 chore: capture iss-160 — spurious /abcd:README command in plugin surface +c055c30cd748c698da26e2d60653f98852f5b4fb 7be6249fc14643283395832f5486e71a8ab6ea2b chore: capture iss-161 — /abcd:abcd: double namespace in plugin surface +a8b415297573c263f3c3bdff9ca39f7854f4c5d5 eda50b9254182f313303477047edbc6efde194b0 chore: capture iss-162 — surface guidance references unregistered /abcd:ahoy +7394ee90e096f492fddc599912bc155be973dfc6 41427f18621b2db5d564b368008de81bc799f675 chore: capture iss-163 — install prompts carry no per-choice help text +0529edd85cbb86f697ebc8e8b65127acb06cfb76 0d8e65d724fef95bf560f7de4d38e3ee8f61b2d6 chore: capture iss-164 — install summary speaks implementer jargon, not persona language +8089ab5be4d878096a287ec1e1393908beae1bb2 8809e79c37ee6a3f04550df6b707ac87c01958cd Merge pull request #167 from REPPL/chore/plugin-install-findings +51a401f4af5370471a11520dfe07d4249561e2fd 56ce1ecfe35e60d2a8a869d1066c57e9b900e2ba chore: grill itd-105 to ready — decisions recorded, planned, spc-21 written +bf556f7c94811bb7d77fdfa65a926873587e746b ab7674c38a158fdd02fba90e19f78ece3bc66799 chore: capture iss-165..iss-168 from the grill and second-repo install +9fec5cfc19aec3cdd7a7277335c40b6a928de3c2 4223d02e79130ae26d433bfa919888e3d3657807 chore: capture iss-169 — installed .gitignore fence contradicts the tier convention +666cf2a95a27af88df0da485dbbe545b37fb8e56 5283df5df784aacdf2e76fb26a6735aafab2ad41 Merge pull request #168 from REPPL/chore/itd-105-grilled-ready +a4a6c5f0cf91aae4186c72cf1bed463dedd3b654 ef047fe1e3286e5585879dff961593c597c54c84 chore: draft the explainability follow-up run queue +4be6fcd562ea23d9a88c3ce1e9080e2400be50b3 ca5accf74c9d9c52cdc18c24a73fda8e41de0802 chore: pull iss-171 into the explainability cycle as Workstream B item 6 +897ff720ca096a60845f2ca49b0c9baece11903c e70ebc6b353d8bee7977ffeb0313fbdf0d233a99 chore: pull the 2026-07-29 install findings into the v0.5.0 run queue +42862e5f8af922cd7af7357bdb69f6ddd0083c6b 2f5b2bb10294906bd2dc5f034ea9c0edaf22fe66 chore: capture iss-170 and add it to Workstream C — symlink-blind plugin-root resolver +a3ec434c17ee40d17a0b68019784b6157f929420 686f6d5e2974306252a0a7b47e4bb3942209036b Merge pull request #169 from REPPL/chore/v0.5.0-plan-install-findings +b85696937ff23b0d3c4f68946ca9f32aaf5bf637 ad09bfe8473e7974c88f8d00141aa581c5f12d48 chore: capture iss-171 — PATH-install detector assumes one blessed layout +85fe10b1a04f9c18f9c8dfac38173f8903fe2482 aea8fb2498e1605d4e562ea078c0c364472b07f5 Merge pull request #171 from REPPL/chore/iss-171-bin-target-capture +46a0a28986cf454f1520f06805cc86d76d212c3a a86f8daec0b713cdf4d3516ab63de360d1e8b719 Merge branch 'main' into chore/explainability-follow-up-plan +fe6bace23d801727ac0d6eeb9288a5ea9e03c35f 455bdd9fe63316c5803b39f22c0033a62600f484 Merge pull request #170 from REPPL/chore/explainability-follow-up-plan +1865f71b6304da7639a1265e258de96f777d08da 96eebba912c36aee5f4f8d816e7398325a7a28d1 chore: capture iss-172 and add PR-queue hygiene to the v0.5.0 run contract +52ba9e014b52f098989ebd6d6393516225f6d4ad 1f87ec41119363440e1f06159f0a85a3615fbf5d Merge pull request #172 from REPPL/chore/pr-queue-hygiene +5226b292121d75095277a85a59a3e8b4b7800a28 a167d336125445fd8cbf66f579a7065085aba389 feat: detect network identifiers outside the reserved documentation ranges (#175) +2be7a58e5c106d328eb58deb34703f2559bfc6b2 c46983c39cb772a9710f167d309e63a1d9882086 feat: three-tier-layout flags local-tier artefacts in committed tiers (iss-155) (#176) +5927c89835abd56e844ca990d1225218933f4588 a8b5bc78e632fc2b19796bc19d505ad74bb6743f fix: PII rules domain recalls network contexts and forbids committed network identifiers (iss-156) (#177) +8f5c4d20f494a3d780ed246981251f78fc700965 b9e3beb92f72f8fd8d57dab145a4ecd29c09c6d0 fix: installed .gitignore fence matches the three-tier layout (iss-169) (#178) +c31af0b4ae3513528ce455921fe877e2f7c55614 0be457966b956909d6ce613fc4b091a29ab2fa88 feat: name-banlist increment 1 — private guard and abcd banlist verb (itd-74) (#179) +0f39fcfa6079581df5d4c04e8dbb444a78e16324 65a9ccaf1dd068f70088aec26f43da7044865777 feat: name-banlist increment 2 — ahoy scaffolding, honest reach, lifecycle close (itd-74) (#180) +6ebea18b6633ebc5c4b20cb112582aa5a956ff6c 852588a12e6ecc6de68aaf90cc2ab0fc469bb234 docs: file itd-105 and itd-106 intent drafts (#174) +44d13866844b6c029322ddfee8818c1bec11c6d0 79ef86d761c346af6b37b6b9706068697def488d docs: verify and re-scope the transcript-scanner entropy residue (iss-96) (#181) +54dc26770dcd9141cbb07bcb3ad46a2ca8c8d66d 9c966b5d9493678260757cf704bb2f90b4be5531 docs: land the iss-96 merge-gate corrections (follow-up to #181) (#182) +e424b3ddf5d3a44c5f1466ab69b3b8a3bc975d30 5b299a3273e8da775eb3639089c0601d27afd628 fix: guard registry + matcher batch (iss-159, iss-144, iss-148 partial) (#183) +9d702749dcbf281cc73a08af2ae331daf77db4c0 4955de3fed9b4b5edd95e4631442d60d799c8dff feat: plugin binary self-provisions at session start (itd-105, spc-21) (#184) +f63993ffeebcad77372230fb1c25220a476e9b39 966b1060e81e8dd311f753a0162fa90a4c2ff0c8 test: close the memory-ingest boundary coverage gaps (iss-30) (#185) +717a0cce843fd3b83146cefedb06e3d0af75807b 5084470b3a8a7db93a22f321888663c9c5e731de test: cover the untested refusal guards (iss-34) +277b676ea2570a86d04e7249088d2890ea4e2fac bbdc5656c1dd17ee2049b8f0cc384365f4dd35b6 fix: resolve the executable symlink before the plugin-root walk (iss-170) +6a08530bfa65f1a2d9a178bf93cd1b5fd67257ca 9764ad9a89213c84fbf564f34aa4875d2a509181 fix: hand-maintained index drift — delete or gate stale directory enumerations (iss-38) (#188) +bbaeee4913f44d0f92eaa52992e225e9598f0872 9023819788d0ce92c3500aa7adff6fb49b5337d4 feat: record-lint checks the record schema across its stores (iss-39) (#189) +9601fa2508d2d1bc5bc1d7ac708d8584d10cdeb9 d5fc2d8d200b9b3cf1964db5861469f57766766b fix: one canonical glossary, a derived index, and the retired-registry banlist entry (iss-40) +41164f3083725258224c85c3d388df854eddd512 1a05055a257273b0d0a02a27470730b484668835 fix: the lifecycle gains a delivery-state gate, and two id-listings stop drifting (iss-41) (#191) +cb2f2d0afefd9b8bb097876b0ff52e3bc8a24b34 637c287a3ed28584269201468c38572a7dd590c7 fix: the record's orientation is current, and stops silently drifting again (iss-42) (#192) +5662c73b45d13977c3a4da651332da23d60e4a91 3af404635fa54dfb569f4c52f25c279009e695e2 docs: the gate descriptions state what preflight and CI actually run (iss-37) (#193) +f0cd45ea7b2001499523e4f0ac6adbf8f8bfd9a4 a3a5d0e160951b951137d80eff1b733e0e4acfc8 fix: plugin verbs register as /abcd:<verb>, not /abcd:abcd:<verb> (#194) +0ff675a45ab4fb3874ca112687763ab093dcb2b7 50c599eaf1c9563932758a62dca399faa9151d2c test: prove refs-union id minting across capture and intent branches (#195) +a8641523621efd24e996737b2936740d756b4018 5ad56426bdcbf01751aa2b85058419ef778c81b2 docs: the README layout line names both distribution channels +7d4aa90404275e29da77344a69fae74dd4a4a669 92fe3bd8c0f6b8e7f6248afaff9a07bccf436b7c docs: iss-43 is re-scoped to its one surviving claim and resolved +539810ae596dbfddaf700ca1a7af96603296db44 aa741a89d2a211d4055b434eb861ca997ad5d4da docs: correct the iss-43 commit attribution and the exclusion claim +662bf7442a065c022d42d9fed9bfbdb667348f50 5e9840e10d2fa52261a43db5191c650c8382dc6b docs: correct the attribution split, the packaging claim, and iss-183's corpus +aa1570225e3ba83f13e87c73583ea1094e834b5d 3261d1e2f26c655ef62fc8edadff3f4952ac076a Merge pull request #196 from REPPL/v050/iss-43 +5345a2eff43a4e73ec051d1d7c7a368265ddf8b6 5a45612e4db79b8d035d4bde388d87523ad479e4 docs: land the iss-43 merge-gate corrections (follow-up to #196) (#198) +49aeb8e26ab69ff25924312e144afb9776ccdfdc 1cc73ec2472c9a0ad3503c8130e98d561a618260 chore: give DECISIONS.md and ACKNOWLEDGEMENTS.md a union merge driver (iss-118) +4e668e19371bc10669eb380f7433ee29e132240c 5b1161c7631ab62039fd488b3f6ede456b9bfd88 chore: capture four bugs verified by the bug-hunt loop (round 1) +662edce8d90b3c56f704b95af748eb6b4ed69c58 3e47e70355e5860f5e971d054e5919669b1920f7 fix: the guard fails loud, not silent, when a `<<` is not a heredoc (iss-184) +54fb692271f4abc58c8769faa99c63c1ba82b7b3 93af893979aad92fe9e18ed9092ae5c58428e8db docs: resolve iss-184 in the ledger and record the round (bug-hunt loop) +c120e527b62460cfd225ad689d68884ec7ba43ef 8bb7a0d517f109424f194a35b8eeb5f54a1e00ad fix: a heredoc delimiter can't be adjacent to a bare paren (iss-184) +09ab7d757f3e6009c573161d96994b9222d3dd1c bfeb5298d4dd0a0b9092d73735ca23d2bda7f2da docs: correct the iss-184 record to describe the real fix +b1cb699bcdfc3a5a48a8ecf5ca4625398833ceb5 996b0a61495c4ec8634daab37a5ec373c4a1191b Merge remote-tracking branch 'origin/main' into bugfix/iss-184-guard-heredoc-arithmetic-shift-bypass +82fa7376835b400dfd2b389d0735b0902742abe2 0a3437e9a85104dc677b537debac82d53eb12abc Merge pull request #199 from REPPL/bugfix/iss-184-guard-heredoc-arithmetic-shift-bypass +5bdc6c0461325f3a39ae3b33eb1123454df1fc23 5ffe5de98ce547e4270afa2053d4dcc7609f525a Merge remote-tracking branch 'origin/main' into chore/iss-118-decisions-merge-union +95e01f6f5357925ae0815fcb40d9d4697cb40846 2ab6019338990421e42793163cd7396a1f8df4bb Merge pull request #200 from REPPL/chore/iss-118-decisions-merge-union +33d0c5b440ed2f8dea93fdc306033d66d128da71 5dca09754add8c5dfaecc7edeaf3c413464039e8 fix: the scanner detects a second secret token immediately abutting a first (iss-185) +37f870a501dd762dc7f7d3ab24953b98f18661af 7de60dec6fe70c9fc1abbad29d9b8cfe9e01e483 fix: the scanner recovers a fixed-length secret abutting ANY pattern, not just its own (iss-185 review fix) +734fb0f07c55deeab99504bb7f4a3b996d1367f9 4f70a491a496c4017c2afbf674ad5048ddfba1e5 chore: capture a bug found reviewing iss-185's fix (iss-188) +23962809f33c3d77d410b421973b99b7fbe84fd9 16dfbe4c1b735e64511b4c676f3ca2903d14a84e fix: anchor the adjacency probe so it costs O(1), not O(line length) (iss-185 review fix) +006eeb85cd31d1000975fc2b309f3154eddd09a7 9fc04ea212e36e21edfe6d68ddeb2e8908956d0c fix: bound the adjacency probe's window so one attempt can't cost O(line length) (iss-185 review fix) +e78251e1d08c3954b7670b7abb939db7487748dc 55b73b43d545bf74fcffb47e2b048ce5bf57a9e1 chore: correct a comment and capture a merge-gate finding (iss-185 PR, iss-189) +2ca3f4b92e851b143ed74b708dee0854d80c8d61 eb61acd6d00b7c6150efa86cf4cbe623ca5125b6 Merge pull request #201 from REPPL/bugfix/iss-185-scanner-adjacent-secret-boundary-bypass +41c62ba345768282cdd5ef4af22d50b4cdbf41b1 7966200aab9e6efa6579b5c70c5d224e43f0b869 fix: the scanner recovers a second secret an open-ended pattern's greedy quantifier swallowed (iss-188) +d17f450c69e0794e4d181eac3a22244ed5578732 8cec9b6c3f3f6f8386140ceec3720ecb769dc3ac fix: the junction search no longer steps over the junction it is looking for (iss-188) +cd5c75023bee6f04ca16ac741131e335dc35634c c7d28415a670cb7b0e205dc68a6346a0ebdc288a Merge pull request #202 from REPPL/bugfix/iss-188-scanner-adjacency-greedy-open-ended +abf20dadf9e200704c4a9823c089f216398d8d9a ff8cb30c8e7b029d8bec1c49d03067201f76dfd9 fix: capture transitions roll back the destination on a failed source remove (iss-186) +5e10f638440077c28c0f01a728150a3e8041be26 29e9f87b3e91ea3069dc6a822af7cd9454e09f85 chore: resolve iss-186 and record the round (bug-hunt loop round 4) +8fbab11aa4c8a05865179d952ceb48a3099bfeb0 0b2631977e6da00c946a6b6a6957c7fe6e112653 docs: drop eight Unreleased entries already published under 0.4.1 +60ecc36015435b9efc54c0193385b2aef377e892 f32e19891e3b59c7a4d7fb959618120a8c6dbcc3 chore: pre-release doc sweep — waive two stress fixtures, name the shell-hazard guard +33779807b9f0311a4a2bb2281d65e1c5b5c7cfb1 049079562c03c3af315d1c851e0aa9e91d4cc3e2 chore: cut v0.4.2 — date the changelog +532d967712d78a690e8afbb9e98cd3ae3c3641ae 992cf19f16594b7a3ddc32a77044eafc721c1f3b chore: record the v0.4.2 semantic-gate receipts (PROMOTE x2, full tier) +22d1cdc1b76e4c95970c9bfae4751e51fc830215 b562f62d8ea2c42750e0ab6aad33e83287923a3e Merge pull request #204 from REPPL/chore/release-cut +7b5e150b48889d54c20af41cbeb32dc37f068865 04ea6d4527e187a20454c1aab797cc71978b1920 Merge remote-tracking branch 'origin/main' into bugfix/iss-186-capture-transition-remove-rollback +f71f5d7d6a3f7a3b38262249b39ae58e23a7a53e 1ad1ff8c2764bb8ebb3fd448a0ba7252192b62d0 fix: keep the iss-186 CHANGELOG entry under Unreleased after the v0.4.2 merge +4c56802ffb11528867499e60d27ee91c84d295c1 e2f8c6bb8e64a7071bd7818f8959eae24cf829b8 Merge pull request #203 from REPPL/bugfix/iss-186-capture-transition-remove-rollback +c133c058f3645f22d8607f468c1ff4477b2bd72c 5c0af532dcf464ee4a6557e8076519c72245aa5a fix: rules.Merge no longer panics when the base declares no domains (iss-187) diff --git a/.abcd/work/attribution-rewrite-2026-08-06/tag-map-old-to-new.tsv b/.abcd/work/attribution-rewrite-2026-08-06/tag-map-old-to-new.tsv new file mode 100644 index 00000000..ab7b6925 --- /dev/null +++ b/.abcd/work/attribution-rewrite-2026-08-06/tag-map-old-to-new.tsv @@ -0,0 +1,7 @@ +tag old_tag_object old_commit new_commit +v0.1.0 df59606ca1ea1dd45c34f9834a714942cb1e503e 4bfc162f29260e15bc7f2d9396463a07a7e95e7d bebc422420333221149f53139ba5541062685903 +v0.2.0 4e9396ae22305b8fb0a42e81c0e10ded58f14038 ae5e70391e855bbe7b3b43e6d9b2ae02530ef63b 23ac0c1f1fe14f65f99e3cc431fd8e821012d146 +v0.3.0 71ae75c718e66769ae3a119d0d17e273d5f0ebd2 cbd66de321390c77e1ff682c44aefe66e2c503d3 c9ff833eff63620b8db4c1685078e5e30e590000 +v0.4.0 a576d266568d5f8466eb7129da84509490e18596 495137594b45ac0d603c15e9fef85defa5bf681c 101b66a1837c1b8e8ea3c2b3d1bf3eb97a347c03 +v0.4.1 (lightweight) 5b0937c8250e6185f7a57c2ae164c1deb3029d38 360c22dcdc36817f8cf784c0687e735778dcca05 +v0.4.2 b2e9bc2bee8b6c1efe4b259564ba77222b0395fe 22d1cdc1b76e4c95970c9bfae4751e51fc830215 b562f62d8ea2c42750e0ab6aad33e83287923a3e