mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-08-28 08:35:57 +00:00
48 lines
2.7 KiB
Markdown
48 lines
2.7 KiB
Markdown
---
|
|
issue: 6
|
|
issue_title: "Log resolved config paths at startup so misconfiguration is debuggable"
|
|
---
|
|
|
|
# Retro: #6 — Log resolved config paths at startup so misconfiguration is debuggable
|
|
|
|
## Final Retrospective (2026-05-02T17:15:00Z)
|
|
|
|
### Session summary
|
|
|
|
Planned, implemented, and shipped issue #6 across three prompt templates (`/plan-issue`, `/tdd-plan`, `/ship-issue`).
|
|
The feature adds a `config.resolved` review-log entry at every `session_start` listing all policy and extension config paths with existence flags.
|
|
Released as v0.6.0 with no breaking changes.
|
|
|
|
### Observations
|
|
|
|
#### What went well
|
|
|
|
- The first `/ship-issue` invocation correctly detected that only a plan commit existed and refused to close the issue — conservative behavior matching the project's least-privilege philosophy.
|
|
- TDD execution was clean: 5 commits in logical order, all tests green on first pass after implementation.
|
|
- Extracting `src/config-reporter.ts` as a standalone module (plan left this as an open question) kept the change small and testable.
|
|
|
|
#### What caused friction (agent side)
|
|
|
|
- `missing-context` — `.gitignore` included `docs/` (upstream excluded generated docs), so `git add docs/plans/` failed during the plan phase, requiring `git add -f`.
|
|
Self-identified.
|
|
Impact: one extra tool call and retry; root-caused during retro — upstream's ignore was speculative (no doc generation tooling exists), so `docs/` was removed from `.gitignore` entirely.
|
|
|
|
- `wrong-abstraction` — Used `as unknown as Record<string, unknown>` double-cast in `logResolvedConfigPaths()` to pass a typed `ResolvedConfigLogEntry` to `writeReviewLog()` which accepts `Record<string, unknown>`.
|
|
This works but bypasses type safety.
|
|
Impact: no rework, but leaves a type smell in `src/index.ts` (lines 1558, 1562).
|
|
|
|
- `missing-context` — Did not notice until post-implementation that `src/index.ts` has two duplicate `session_start` handlers (lines 1566, 1584) performing identical setup.
|
|
Added `logResolvedConfigPaths()` to both, which means the `config.resolved` entry is emitted twice per session start.
|
|
Impact: duplicate log entries; latent bug amplified but not introduced by this change.
|
|
|
|
#### What caused friction (user side)
|
|
|
|
- No user-side friction observed.
|
|
The three-template workflow (`/plan-issue` → `/tdd-plan` → `/ship-issue`) ran without manual corrections.
|
|
|
|
### Changes made
|
|
|
|
1. `.gitignore` — Removed the `docs/` entry entirely (upstream added it speculatively for "generated documentation" but no doc generation tooling exists).
|
|
2. `AGENTS.md` — Added "Runtime Caveats" section noting the duplicate `session_start` handlers that must be kept in sync.
|
|
3. `docs/retro/0006-log-resolved-config-paths.md` — This file.
|