mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-08-28 08:35:57 +00:00
feat: vendor permission system source
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
---
|
||||
issue: 80
|
||||
issue_title: "Extract PermissionPrompter class to unify prompt/log/forwarding chain"
|
||||
---
|
||||
|
||||
# Retro: #80 — Extract PermissionPrompter class to unify prompt/log/forwarding chain
|
||||
|
||||
## Final Retrospective (2026-05-05T01:20:00Z)
|
||||
|
||||
### Session summary
|
||||
|
||||
Planned, implemented, and shipped `PermissionPrompter` — a class encapsulating yolo-mode, review logging, and UI/forwarding branching behind a single `prompt()` method.
|
||||
Released as v4.4.0.
|
||||
Also performed a thorough gap analysis of `docs/architecture/target-architecture.md` vs. current state, filed #81 and #82 for remaining structural debt, and updated the target doc to reflect all completed work through #66.
|
||||
|
||||
### Observations
|
||||
|
||||
#### What went well
|
||||
|
||||
- TDD execution was clean: 17 new tests, one minor assertion fix (`expect.anything()` vs `undefined`), no rework on the class itself.
|
||||
- The target-architecture gap analysis was high-value — identified 3 untracked gaps, filed focused issues, and produced a comprehensive doc update accepted without revision.
|
||||
- Pragmatic commit bundling (test + impl in one commit due to pre-commit hooks) was handled without friction.
|
||||
|
||||
#### What caused friction (agent side)
|
||||
|
||||
1. `missing-context` — Edited `docs/architecture/v3-architecture.md` without reading its purpose statement ("as-is design" = historical snapshot).
|
||||
User had to correct me.
|
||||
Impact: 2 wasted commits (`94be5b5`, `c49523e` revert).
|
||||
2. `wrong-abstraction` — After the v3 correction, added `permission-prompter.ts` to `target-architecture.md` with an "interim; subsumed by permission-gate.ts" annotation.
|
||||
The user clarified that interim stepping stones don't belong in the target at all.
|
||||
Impact: 2 more wasted commits (`c5cf101`, `f300f08` removal).
|
||||
Combined with (1), produced 4 net-zero commits.
|
||||
|
||||
Both were **user-caught**.
|
||||
The underlying failure: treating architecture docs as "track current state" rather than understanding each doc's distinct role (historical snapshot vs. aspirational target vs. per-module current description).
|
||||
|
||||
#### What caused friction (user side)
|
||||
|
||||
- The user could have proactively mentioned "don't touch v3, it's frozen" when asking about `target-architecture.md`.
|
||||
However, the doc's own opening line makes its role clear — the agent should have read it first.
|
||||
|
||||
### Changes made
|
||||
|
||||
1. Added `## Architecture docs` section to `AGENTS.md` distinguishing `v3-architecture.md` (historical, frozen), `target-architecture.md` (living target), and per-module notes (current implementation).
|
||||
Reference in New Issue
Block a user