# progress

## US-001 — 2026-05-03 22:58 UTC

**Title**: Rewrite the canonical tree in docs/architecture/container-runtime.md
**Files changed**: docs/architecture/container-runtime.md
**Commit**: 235b330
**Result**: PASS

### What I did
Replaced the stale container-runtime repo tree with the canonical layout and removed phantom heartbeat env-var references. Added the explicit `{#repo-layout}` anchor for downstream pointers.

### Learnings for future iterations
Use `docs/architecture/container-runtime.md#repo-layout` as the only canonical tree target; duplicate tree blocks should become pointers.

---

## US-002 — 2026-05-03 22:58 UTC

**Title**: Reduce AGENTS.md Project Structure to orientation block + canonical pointer
**Files changed**: AGENTS.md
**Commit**: 732ce67
**Result**: PASS

### What I did
Replaced the AGENTS.md tree block with the canonical-source guard, short orientation text, and a link to the canonical repo layout. Preserved the CLAUDE.md symlink relationship.

### Learnings for future iterations
Edit AGENTS.md once; CLAUDE.md is a symlink and should remain intact.

---

## US-003 — 2026-05-03 22:58 UTC

**Title**: Reduce README.md Project layout to a pointer and fix broken croner spec link
**Files changed**: README.md, docs/architecture/crons-and-heartbeats.md
**Commit**: bd07712
**Result**: PASS

### What I did
Replaced the README project layout tree with a pointer to the canonical repo layout. Retargeted the stale croner/spec link to `docs/architecture/crons-and-heartbeats.md` and added the interim PR-B placeholder.

### Learnings for future iterations
README should prefer high-level pointers over maintaining another annotated tree copy.

---

## US-004 — 2026-05-03 22:59 UTC

**Title**: Add forward link to canonical anchor in docs/architecture/overview.md
**Files changed**: docs/architecture/overview.md
**Commit**: 05be240
**Result**: PASS

### What I did
Added the forward link from the architecture overview topology section to the canonical repo layout anchor. Left the topology ASCII diagram untouched.

### Learnings for future iterations
Cross-document architecture links should target relative doc paths, e.g. `container-runtime.md#repo-layout` from the same folder.

---

## US-005 — 2026-05-03 23:00 UTC

**Title**: Update .devcontainer/.example.env comment block to reflect live crons model
**Files changed**: .devcontainer/.example.env
**Commit**: 05f03dd
**Result**: PASS

### What I did
Replaced the stale workspace/heartbeats comment block with live `crons/` model guidance and the PR-B cron doc pointer. Kept the change to comments only.

### Learnings for future iterations
`.devcontainer/.example.env` is installer-facing documentation; avoid behavioral edits unless the story explicitly asks for them.

---

## US-006 — 2026-05-03 23:00 UTC

**Title**: Verify and remove orphan heartbeat.log glob in .gitignore
**Files changed**: .gitignore
**Commit**: b1e78d9
**Result**: PASS

### What I did
Confirmed the runtime writes `crons/cron.log`, not `**/heartbeat.log`, and removed the orphan gitignore glob. Left active runtime log ignores intact.

### Learnings for future iterations
For cleanup stories, verify the live runtime path before deleting stale ignore/doc references.

---

## US-007 — 2026-05-03 23:42 UTC

**Title**: Drift cleanup in workspace docs (workspace.md, uat-testing.md)
**Files changed**: docs/guide/workspace.md, docs/guide/uat-testing.md
**Commit**: 748e807
**Result**: PASS

### What I did
Removed the obsolete `workspace/heartbeats/` entry from the workspace template tree. Replaced the UAT heartbeat example that pointed at missing `heartbeats/uat-report.md` with current guidance to define recurring reports as repo-root `crons/*.md` files.

### Learnings for future iterations
Do not invent a replacement artifact path when the stale heartbeat file has no live equivalent; use the repo-root `crons/*.md` model instead.

---
## US-008 — 2026-05-03 23:49 UTC

**Title**: Add .claude/rules/repo-layout-source.md auto-loaded rule
**Files changed**: .claude/rules/repo-layout-source.md
**Commit**: 6e0c9c7
**Result**: PASS

### What I did
Added the auto-loaded repository layout single-source rule under `.claude/rules/`. The rule points contributors to `docs/architecture/container-runtime.md#repo-layout`, blocks duplicate directory trees elsewhere, and records why the guard exists.

### Learnings for future iterations
Use `.claude/rules/*.md` for durable process conventions; rules should state the canonical source, explicit do/do-not lists, and the historical failure that motivated them.

---
## US-009 — 2026-05-03 23:57 UTC

**Title**: Add CHANGELOG entry under [Unreleased] Changed
**Files changed**: CHANGELOG.md
**Commit**: 6b771eb
**Result**: PASS

### What I did
Added the PR-A changelog bullet under the existing `[Unreleased]` `### Changed` section. The entry summarizes the canonical layout consolidation, pointer reductions, drift-prevention rule, phantom heartbeat env-var purge, and README croner-link fix.

### Learnings for future iterations
Keep the `## [Unreleased]` heading exact; the release skill matches that line when promoting the changelog.

---
STATUS: COMPLETE
