Review: Document .claude-no-enforce in agent-workflow SOP
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type -- Feature
- [x] Lineage -- Standalone, discovered during frontend iteration
- [x] Repo -- forgejo_admin/claude-custom
- [x] User Story -- present and well-formed
- [x] Context -- clear motivation, references the undocumented dotfile
- [x] File Targets -- listed (but see issues below)
- [x] Acceptance Criteria -- 4 items
- [x] Test Expectations -- includes verification command
- [x] Constraints -- appropriate (document only, no behavior change)
- [x] Checklist -- standard PR checklist
- [x] Related -- references parent project and related SOPs
Traceability
- [x] story:pm-scope label -- present on board item #343
- [ ] arch:ci-pipeline label -- ISSUE: Wrong architecture component. This ticket documents an enforcement escape hatch in check-issue.sh (a hook), not a CI pipeline. Should be
arch:hooksorarch:enforcement - [x] Forgejo issue -- forgejo_admin/claude-custom#156, open
File Targets
- [x] pal-e-docs note
agent-workflow-- verified: exists, active SOP. No mention of .claude-no-enforce currently. Appropriate target. - [x] pal-e-docs note
agent-betty-sue-- verified: exists, active agent profile. No mention of .claude-no-enforce. Appropriate target. - [ ]
betty-sue.mdin claude-custom -- ISSUE: File path is wrong. The file is atagents/betty-sue.md, notbetty-sue.mdin repo root. Issue should specifyagents/betty-sue.md. - [x]
hooks/check-issue.shline 74 -- verified: .claude-no-enforce check exists at exactly line 74 with three path checks (cwd, git_dir, repo_root). Also referenced at line 242 in the error message as a hint. - [x] Convention note creation (
convention-claude-no-enforce) -- verified: does not exist yet. Issue correctly identifies this as a potential creation target.
Repo Placement
Mixed. The Forgejo issue is filed on
claude-custom which is correct for the agents/betty-sue.md change. However, the agent-workflow and agent-betty-sue pal-e-docs note updates happen via MCP tools, not file edits in claude-custom. The issue acknowledges this with "(via MCP)" but this means the dev agent needs pal-e-docs MCP access -- which violates the agent-workflow rule that "Dev and QA are repo-only." This is a Task-type documentation ticket that should be executed by Betty Sue or Dottie (who have MCP access), not a dev agent.Dependencies
No blocking dependencies found on board-pal-e-agency. Board item #364 ("Scope review pipeline: jidoka for the left side of the board") is related but not blocking. No items in in_progress that would conflict.
Acceptance Criteria
- "agent-workflow SOP updated with .claude-no-enforce exception" -- testable via get_note(slug="agent-workflow") and searching for "claude-no-enforce"
- "agent-betty-sue profile updated" -- testable via get_note(slug="agent-betty-sue")
- "betty-sue.md in claude-custom updated" -- testable but file path is wrong (should be agents/betty-sue.md)
- "Convention note created if appropriate" -- vague. Should be a clear yes/no decision. Recommend: yes, create convention-claude-no-enforce.
Test command
touch .claude-no-enforce && bash hooks/check-issue.sh is incomplete -- check-issue.sh reads from stdin (jq parses tool_name, file_path, cwd from JSON input). The test command would fail without piped JSON. A more accurate test would need to pipe mock hook input.Blast Radius
.claude-no-enforce is only referenced in check-issue.sh and .gitignore within claude-custom. No other hooks use this pattern. The documentation work is purely additive -- no risk to existing behavior. The sop-frontend-dev-overlay SOP (referenced in the issue's Related section) does not mention .claude-no-enforce either, which is a gap this ticket would close.
Decomposition Assessment
4 acceptance criteria across 2 systems (pal-e-docs MCP + claude-custom repo). However, this is all documentation work with no code behavior changes. A single agent pass by Dottie (who has pal-e-docs access) could handle the MCP updates, and a separate commit for agents/betty-sue.md. Fits in one pass if routed to the right agent type.
Recommendation
Three issues to fix before READY:
- Fix file path: Change "betty-sue.md in claude-custom" to "agents/betty-sue.md in claude-custom"
- Fix arch label: Change
arch:ci-pipelinetoarch:hookson board item #343 - Clarify issue type routing: This is a Task (documentation only, no code file targets in the traditional sense). The pal-e-docs updates require MCP access, which means this should be routed to Dottie or executed by Betty Sue directly -- not a dev agent. Consider changing ### Type to Task and adjusting the execution plan accordingly. Alternatively, split into two tickets: one for agents/betty-sue.md (dev agent on claude-custom) and one for pal-e-docs updates (Dottie).