Retro improvements: learnings, skills, and guidelines updates - #24
Conversation
…design learnings - Quiet no-op: incremental fetches with 0 new comments emit a single line instead of full formatted output (saves context in polling loops) - After LGTM verification: note that further monitoring is unlikely needed - New learnings: @ reference format flexibility, body-only templates, skills shouldn't assume invocation context Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Delete 5 patterns covered elsewhere (address-request-comments, curation-insights, content-type-decisions). Merge 6 related patterns into 2 (@ references, producer-consumer). Migrate 2 patterns to better homes (multi-agent-patterns, cross-repo-sync). Clean up stale git:create-mr references. Net: 38→31 patterns, ~14% line reduction. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Empirically verified that @ references in SKILL.md resolve regardless of formatting (list prefix, description text). Migrated reply file pattern from single .gh-reply.tmp to .gh-replies/<id>.md directory for parallel safety and queryability. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Capture patterns from recent session retros: git workflow gotchas (pagination, symlinks, stacked PRs), Python practices (dataclasses, pyproject.toml, noqa), PR review etiquette, guideline taxonomy, and curate skill decomposition format for large files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nings Extract-request-learnings: use project-local staging dirs for general/private writers to work around background agent write restrictions on ~/.claude/. Orchestrator copies to final locations. Curate classification: refine "migrated completely" to check whether the destination is broadly discoverable before deleting source. New guideline: don't ask permission to invoke sub-skills within a skill's instructions. New learnings on partial batch completion and scope classification language-awareness. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…arnings Extract-request-learnings: add git fetch step for multi-session staleness, language tag to extractor output, route-check step to writer for language-specific file routing. New guideline: surface known limitations before acting, not after. New learning: content type taxonomy for Claude config surface. New patterns: staging directory for out-of-project writes, multi-session skills need remote sync. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New soft gate in context-aware-learnings: self-check whether working from loaded knowledge or training memory before drafting substantial domain content. Experimental — relies on self-awareness, not mechanical triggers. Skill design learnings: hub-and-spoke for authoring guides, reviewer personas as distinct from working-in-repo personas, memory minimalism principle. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
0f4e10c to
096087f
Compare
New step 6 globs learnings/ filenames and reads domain-relevant files before composing replies, grounding responses in established knowledge rather than ad-hoc reasoning. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ions - Refine path resolution table in CLAUDE.md for clarity - Update extract-request-learnings, create-pr, create-request, and resolve-conflicts skills - Expand communication guidelines - Update learnings across ci-cd, claude-authoring, code-quality, git, process, and testing domains - Update GitHub/GitLab skill reference docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- resolve-conflicts: grep for conflict markers instead of full file reads, use offset+limit to read only conflict regions - claude-authoring-skills: re-read templates at point of use, not ahead of time, to prevent stale-context improvisation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract content-mode and skill-mode execution steps, report templates, and apply actions into conditional reference files. SKILL.md drops from 565 to 186 lines (always loaded), with each mode file loaded only when relevant. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Suggestions awaiting approval
Reply with which to implement (e.g., "all", "1", "1,2") or discuss further. Co-authored with Claude Opus 4.6 |
Broadens the Write permission pattern from ~/WORKSPACE/**/.gh-replies/** to ~/**/.gh-replies/** so repos outside WORKSPACE are also covered. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The directory name was GitHub-specific but the skills support both GitHub and GitLab. Also switches gh api URL templates from double quotes to single quotes to avoid zsh permission prompts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move timestamp filtering to jq client-side instead of using ?since= and &direction= query params. URL query params require quoting which triggers permission prompts in Claude Code. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ahoym
left a comment
There was a problem hiding this comment.
Config Review: PR #24
Reviewed through the claude-config-reviewer lens. Structural changes (curate decomposition, staging pattern, body-file pattern, rebase support) are well-designed. Main concerns are content duplication across learnings spokes and a copy-paste bug.
Single Source of Truth Violations
1. claude-authoring-guidelines.md duplicates hub + learnings spoke content
Several sections added to the guidelines spoke are verbatim copies from other files:
| Section added | Already exists in |
|---|---|
| "Avoid Nesting Subdirectories Inside learnings/" | claude-authoring-learnings.md |
| "Content Type Taxonomy" (full table) | claude-authoring-content-types.md (the hub) |
| "Genericize Project-Specific Content" | claude-authoring-learnings.md |
| "Persona-Learning Boundary Test" | claude-authoring-learnings.md |
Per hub-and-spoke design, each spoke stays in its lane. These should be removed from the guidelines spoke, keeping only content unique to guideline authoring.
2. "Scope Classification Needs Language-Awareness" appears in both claude-authoring-skills.md AND claude-authoring-learnings.md
Same content, two homes. Since it's about learnings classification (what extraction subagents do), the learnings spoke seems more natural.
3. "Behavioral rules belong in guidelines, not memory" is duplicated
This rule already exists in CLAUDE.md's MEMORY section (always-on context). The copy in communication.md under "Autonomy during execution" is both redundant and oddly placed (it's about content management, not communication).
Copy-Paste Bug
4. Wrong takeaway on "Memory Minimalism" in claude-authoring-skills.md
The Memory Minimalism section ends with:
- **Takeaway**: Multi-session skill flows should include `git fetch` as an early step to prevent stale-branch issues.
This is the takeaway from the previous section ("Multi-Session Skills Need Git Remote Sync"), not Memory Minimalism.
Taxonomy Questions
5. Aggressive deletions from claude-authoring-skills.md — verify coverage
~113 lines deleted. Some clearly moved (naming conventions -> cross-repo-sync.md). But several practical sections don't have an obvious new home:
- "User Interaction Points" (mark steps needing user input)
- "Bash Commands in Skills" (
--force-with-lease, full commands, HEREDOC) - "File Operations" (temp files in
./tmp/) - "Validating Skill Changes" (structure/content/permissions/function checklist)
- "When NOT to Add Routing Hints" (nuance to the trigger phrases section)
Are these source-vs-echo deletions (covered elsewhere) or clutter-based? "When NOT to Add Routing Hints" in particular adds value the trigger phrases section alone doesn't provide.
6. code-quality-instincts.md — some additions are basic OOP
"Eliminate duplicate entities through inheritance," "Raise exceptions instead of returning None," "Name the primary method run()" — per the "LLM Knows X != LLM Consistently Applies X" test, do these actually fail to be applied unprompted? If yes, they earn their keep. If not, they add context cost for patterns the model already handles.
Also: missing newline at end of file.
Good Patterns
- Curate skill decomposition into
content-mode.md/skill-mode.md— clean application of Skill Decomposition by Execution Path. Decomposition report format for 20+ pattern files is a nice addition. - Staging directory pattern — elegant workaround for background agent write restrictions. Well-documented in both skill and
multi-agent-patterns.md. --body-filepattern — solves HEREDOC permission prompts. Branch name in temp filename for parallel safety.- resolve-conflicts rebase support — thorough: stash handling, ours/theirs inversion, per-commit resolution, force-with-lease.
- GitHub/GitLab quoting —
"..."->'...'for API URLs prevents shell expansion. - Pagination fix —
direction=desc+per_page=100prevents newest comments from hiding. change-request-replies/rename — platform-agnostic, good.
Minor
- Staging cleanup resilience: Step 9's
rm -rf docs/learnings/_staging/after copy — if copy partially fails, rerunning has nothing to copy. Consider keeping staging until next run. - GitLab
glab mr commentstill uses"$(cat ...)"subshell (no--body-fileequivalent). May still trigger permission prompts for complex bodies.
- Relocate broad sweep execution steps from SKILL.md to content-mode.md where they belong as a content mode variant - Add skill decomposition learnings: execution path splitting, mode variants stay with parent mode, single-file anti-pattern Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ahoym
left a comment
There was a problem hiding this comment.
Config Review: PR #24
Reviewed through the claude-config-reviewer lens. Structural changes (curate decomposition, staging pattern, body-file pattern, rebase support) are well-designed. Main concerns are content duplication across learnings spokes and a copy-paste bug.
Good Patterns
- Curate skill decomposition into
content-mode.md/skill-mode.md— clean application of Skill Decomposition by Execution Path. Decomposition report format for 20+ pattern files is a nice addition. - Staging directory pattern — elegant workaround for background agent write restrictions. Well-documented in both skill and
multi-agent-patterns.md. --body-filepattern — solves HEREDOC permission prompts. Branch name in temp filename for parallel safety.- resolve-conflicts rebase support — thorough: stash handling, ours/theirs inversion, per-commit resolution, force-with-lease.
- GitHub/GitLab quoting —
"..."->'...'for API URLs prevents shell expansion. - Pagination fix —
direction=desc+per_page=100prevents newest comments from hiding. change-request-replies/rename — platform-agnostic, good.
Review generated with Claude Code using the claude-config-reviewer persona.
Suggestions awaiting approval
Auto-fixing (typo/bug fixes):
Clarification requests (awaiting your input):
Reply with which suggestions to implement (e.g., "all", "7,8") or answer the clarification questions. Co-authored with Claude Opus 4.6 |
- Remove spoke-duplicated sections from claude-authoring-guidelines.md (Avoid Nesting, Content Type Taxonomy, Genericize, Persona-Learning Boundary Test) — already in their authoritative spoke files - Remove duplicated "behavioral rules" paragraph from communication.md — already in CLAUDE.md MEMORY section - Remove duplicated scope classification section from claude-authoring-skills.md — belongs in claude-authoring-learnings.md - Fix copy-paste takeaway under Memory Minimalism that belonged to Multi-Session Skills section Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ahoym
left a comment
There was a problem hiding this comment.
Claude Config Reviewer: Retro improvements
Second review pass after duplications and copy-paste bug were addressed. The structural changes are solid — curate decomposition, staging pattern, body-file pattern, and rebase support are all well-designed. Remaining items are minor.
Findings
- Deleted "When NOT to Add Routing Hints" from
claude-authoring-skills.md— this nuance (knowing when not to add routing hints) isn't covered elsewhere and complements the "Discoverability via Trigger Phrases" section. Worth reconsidering. - Several deleted sections from
claude-authoring-skills.md(~113 lines) don't have obvious new homes: "User Interaction Points", "Bash Commands in Skills" (--force-with-lease), "File Operations" (temp files), "Validating Skill Changes". If these were source-vs-echo deletions, great — but a quick coverage check is worthwhile. - Basic OOP patterns in
code-quality-instincts.md(inheritance for shared fields, raise vs return None,run()naming) — per "LLM Knows X ≠ LLM Consistently Applies X" test, were these actually missed in sessions? - Missing newline at end of file in
code-quality-instincts.md - Staging cleanup resilience —
rm -rfafter copy means a partial copy failure leaves nothing to retry from - GitLab
glab mr commentstill uses$(cat ...)subshell — no--body-fileequivalent exists
Positive Signals
- Previous review findings addressed — duplicated sections removed, copy-paste takeaway fixed, "behavioral rules" guideline removed from communication.md
- Curate skill decomposition into
content-mode.md/skill-mode.md— clean execution path split with broad sweep correctly kept in content-mode - Staging directory pattern — elegant workaround, well-documented in both skill and
multi-agent-patterns.md --body-filepattern across create-pr, create-request, and github-commands — solves HEREDOC permission prompts consistently- resolve-conflicts rebase support — thorough: stash handling, ours/theirs inversion, per-commit resolution, force-with-lease
- Pagination fix —
direction=desc+per_page=100prevents newest comments from hiding #Nauto-link gotcha in reply templates — practical catch- Language tag in extractor prompt for better routing — addresses scope classification issue
Generated with Claude Code (Claude Opus 4.6) using the claude-config-reviewer persona.
- New git:code-review-request skill for reviewing PRs/MRs - Add inline comment review API patterns to GitHub and GitLab command references Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ents - Track LAST_REVIEW_COUNT for incremental review submission detection (reviews endpoint doesn't support since/updated_after filtering) - Include review count in quiet no-op check - Add emoji reactions for positive signals/general feedback instead of text replies - Add React to Comment templates to both github and gitlab commands Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dropping query params (per_page, direction) to avoid quoting caused comments beyond the default 30-per-page limit to be silently missed. --paginate is a CLI flag (no quoting needed) that auto-fetches all pages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
-F infers type and treats +1/-1 as numeric, which the GitHub API rejects. -f (lowercase) always sends as string. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Suggestions awaiting approval (updated)
Still pending clarification:
Reply with which to implement (e.g., "all", "6,7,8") or answer the clarification. Co-authored with Claude Opus 4.6 |
ahoym
left a comment
There was a problem hiding this comment.
Claude Config Reviewer Re-review: Retro improvements
4 new commits since last review — code-review-request skill, address-request-comments updates, --paginate fix, and reaction -f fix.
Previous Findings
- ✅ 2 resolved (informational comments acknowledged)
- 🔄 3 partially addressed (author agreed but changes not yet committed)
- ❌ 1 not addressed (routing hints deletion — no response)
New Findings
--paginateis a better fix than the originalper_page=100+direction=descapproach — it supersedes the pagination concern from the first review entirely. The CLI handles page traversal without query params that need quoting. Well-chosen solution.- New skill and reference additions are well-structured — the code-review-request skill, review API sections in both platform command files, and the React to Comment templates follow existing conventions cleanly.
Positive Signals
- The
-fvs-Ffix for emoji reactions catches a subtle API type-inference issue before it could bite in production - Review count tracking for incremental detection is the right approach since the reviews endpoint doesn't support
sincefiltering --paginateeliminates an entire class of silent data-loss bugs (comments beyond page 1)
Generated with Claude Code (Claude Opus 4.6) using the claude-config-reviewer persona.
…l rule - Remove 3 generic OOP sections from code-quality-instincts.md (no session evidence they were missed) and fix missing newline at EOF - Remove rm -rf staging cleanup from extract-request-learnings (let next run's mkdir -p handle it) - Add glab --body-file limitation note to gitlab-commands.md - Add "never dismiss comments as duplicates based on topic" guidance to address-request-comments skill Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace generic "Co-authored with Claude" footer with structured metadata: model, persona, and role. The Role field (Addresser for this skill, Reviewer for code-review-request) enables filtering own replies by role instead of fragile content matching. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Auto-detect previous reviews by matching Persona + Role in comment bodies - Re-review evaluates author responses: resolved (emoji react), partially addressed (follow-up reply), not addressed (re-raise) - Reviews new commits since last review as delta analysis - Standardize footnote format: Co-Authored, Persona, Role fields - Filter on Persona + Role composite key to separate reviewer vs author comment chains from the same persona - Summary = themes only, inline comments = specifics (no duplication) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- bash-patterns: gh api URLs with query params trigger permission prompts; use client-side jq filtering instead - git-patterns: GitHub reviews endpoint has no since filter, track review count for incremental fetches Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
These were scraped from actual agent implementation sessions and have session evidence. Premature removal reversed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ahoym
left a comment
There was a problem hiding this comment.
Claude Config Reviewer Review: Retro improvements
This PR has been reviewed across multiple passes in this session. All previously raised concerns (content duplication across spokes, copy-paste takeaway bug, staging cleanup resilience, GitLab limitation documentation) have been addressed. The OOP patterns in code-quality-instincts were questioned, author provided context that they were scraped from actual implementation sessions, and deliberately restored them.
Findings
- No outstanding concerns — all previous findings resolved across 3 review rounds
- The PR is large (30 files, 26 commits) but changes are well-organized by domain: skills, learnings, guidelines, and platform references
Positive Signals
- Curate skill decomposition into mode-specific reference files follows the execution-path-split pattern cleanly
- Staging directory pattern for background agent write restrictions is well-documented across skill and learnings
--body-fileand--paginatepatterns consistently applied across platform command references- Rebase support in resolve-conflicts is thorough with ours/theirs inversion gotcha well-documented
- Language tag addition to extractor prompt addresses the scope classification issue at the source
- Structured footnote convention enables clean multi-agent PR workflows
Co-Authored with Claude Code (Claude Opus 4.6)
Persona: claude-config-reviewer
Role: Reviewer
- code-review-request: add quick-exit check for polling, reference platform commands by section name instead of inlining, add notes on empty reviews and footnote identity - bash-patterns: gh api pagination, --input for JSON, -f vs -F - claude-authoring-skills: structured footnotes, re-review detection, polling fresh-fetch rule, quick-exit pattern, platform command refs - claude-code: GitHub reviews API single-payload pattern - process-conventions: multi-agent comment identity, review summary vs inline separation, emoji reactions, empty review handling Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add back gaps to claude-authoring-skills.md (user interaction points, file operations, portability, token optimization, half-steps, validation checklist, bash commands, description frontmatter, routing hints). Add diagnostic sequence and skill prerequisites to claude-code.md. Add orchestrator/agent split and assumption verification to multi-agent-patterns.md. Add on-platform approval flows to process-conventions.md. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Skip review and suggest cancelling cron job when PR is merged or closed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
Changes
Key changes:
docs/learnings/_staging/instead of writing directly to~/.claude/; orchestrator copies to final locations in foreground (SKILL.md,writer-prompt.md)SKILL.md,classification-model.md)SKILL.md)SKILL.md)SKILL.md)communication.md), don't ask permission for sub-skill invocations (skill-invocation.md).gitignoreScreenshots
N/A
Test plan
Checklist
Generated with Claude Code