Review: Content sweep: rename Betty Sue to Ava across pal-e-docs notes
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type — Feature
- [x] Lineage — references claude-custom#224
- [x] Repo — forgejo_admin/pal-e-api
- [x] User Story — well-formed (As Lucas, I want..., So that...)
- [x] Context — clear motivation, references parent ticket
- [x] File Targets — N/A for filesystem (MCP operations); note targets listed but incomplete (see below)
- [x] Acceptance Criteria — 3 criteria present, verifiable
- [x] Test Expectations — manual search verification described
- [x] Constraints — clear (update_block only, no archived notes, no content rewrites beyond name)
- [x] Checklist — present
- [x] Related — project + parent ticket
Traceability
- [x] story:pm-scope — present on board item, matches PM scoping role
- [x] arch:note-system — present on board item, matches note content operations
- [x] Forgejo issue — forgejo_admin/pal-e-api#247, open
File Targets
No filesystem file targets — this is a pal-e-docs MCP operation via
update_block. Verified the listed notes exist and contain Betty Sue references:- [x]
agent-workflow— verified: exists, Betty Sue references confirmed via search (role descriptions) - [x]
project-pal-e-agency— verified: exists, Betty Sue in user stories table (PM row, block 13984) and likely architecture diagram - [x]
convention-agent-autonomy-levels— verified: exists, Betty Sue in per-agent table (block 8688, row: "Betty Sue", "L2 with L0 escalation") - [x]
convention-escalation-triggers— verified: exists, Betty Sue in escalation chain diagram - [x]
convention-validation-checkpoints— verified: exists, Betty Sue in 3 blocks (paragraph-4, paragraph-8, paragraph-12) - [ ] INCOMPLETE — Issue says "Any other notes found via search_notes" but does not enumerate them. Search reveals 8 additional active notes with Betty Sue references not listed in the issue (see Blast Radius).
Repo Placement
Issue is filed on pal-e-api — correct, that is where the pal-e-docs data and API live. No code file changes needed, only MCP
update_block operations against the database. Repo placement is correct. Single-repo scope (Dottie agent operates via MCP, not filesystem).Dependencies
- [ ] claude-custom#224 (board item #643, "Evolve main session agent: Betty Sue → Ava") — currently
in_progress. HARD BLOCKER. This ticket must NOT execute until #643 merges, otherwise pal-e-docs notes will reference "Ava" while the running agent is still "Betty Sue." The issue's Lineage section documents this relationship but the board item lacks adepends:643label.
Acceptance Criteria
All 3 criteria are agent-verifiable:
- [x]
search_notes(query="Betty Sue")returns only archived/historical — verifiable via MCP call - [x] All active SOPs/conventions reference "Ava" — verifiable via MCP search
- [x] Block-level updates only — enforceable by instruction (use
update_blocknotupdate_note)
Missing criterion: No AC explicitly excludes completed phase notes. Several completed phases reference "Owner: Betty Sue" (historical records). Should be explicitly listed as excluded, same as archived notes.
Blast Radius
The issue significantly underestimates scope. It lists 5 notes plus a wildcard search, but search reveals 12+ active notes with Betty Sue references.
Listed in issue (5 notes):
agent-workflow, project-pal-e-agency, convention-agent-autonomy-levels, convention-escalation-triggers, convention-validation-checkpointsNOT listed in issue but found via search (8 additional active notes):
sop-index— "Betty Sue (main session)" in multiple table rowsagent-spawn-conventions— Betty Sue in agent role descriptionspr-lifecycle— "Betty Sue (MCP)" in multiple action itemsdecision-agent-dottie— "Betty Sue" in Dottie constraint descriptionssop-board-workflow— "Betty Sue has triaged"agent-dottie— "Betty Sue's assistant" in mission statementconvention-cross-pillar-triggers— "Betty Sue is responsible"plan-pal-e-agency— Betty Sue in plan description
Completed phases (should be explicitly excluded as historical):
phase-pal-e-platform-14a-webhook-fix, phase-pal-e-docs-project-taxonomy, phase-postgres-7f-3-template-driftAlready correctly excluded:
agent-betty-sue (archived), project-pal-e-portfolio (archived), review notes (historical)Rollback is straightforward —
update_block calls are individually reversible by swapping "Ava" back to "Betty Sue".Decomposition Assessment
13 active notes with potentially 20-30
update_block calls total. Each call is mechanical (find "Betty Sue" in block content, replace with "Ava"). Applying the rules:- >3 discrete changes? Yes — 13 notes. However, each change is identical in nature (text substitution). This is a single-pattern sweep, not 13 distinct features.
- >5 minutes? Borderline. A Dottie agent with a complete note list can execute this in ~5 minutes if the list is pre-enumerated. Without enumeration (relying on runtime search), the agent wastes time discovering targets.
- Independent subtasks? All note updates are independent — could be parallelized, but the overhead of spinning up multiple agents for text substitution exceeds the time saved.
No decomposition needed — but the issue body MUST enumerate ALL target notes upfront so the agent does not waste time discovering them. The wildcard "search for more" approach is insufficient for a scoped spec.
Recommendation
[BODY]Add the 8 missing active notes to the File Targets / notes-to-update list:sop-index,agent-spawn-conventions,pr-lifecycle,decision-agent-dottie,sop-board-workflow,agent-dottie,convention-cross-pillar-triggers,plan-pal-e-agency[BODY]Add explicit exclusion for completed phase notes to the "Files the agent should NOT touch" section (historical records, same treatment as archived notes and review notes)[BODY]Add acceptance criterion: "Completed phase notes are NOT modified (historical records)"[LABEL]Adddepends:643label to board item #646 — hard dependency on personality evolution merging first