Skip to content

fix(aidd-context): make 10-learn's recommendation step consistent - #622

Merged
blafourcade merged 1 commit into
nextfrom
blafourcade/fix-aidd-learn-inconstancy-et-bypass-user-demand
Aug 12, 2026
Merged

fix(aidd-context): make 10-learn's recommendation step consistent#622
blafourcade merged 1 commit into
nextfrom
blafourcade/fix-aidd-learn-inconstancy-et-bypass-user-demand

Conversation

@blafourcade

Copy link
Copy Markdown
Contributor

🎯 What & why

The 10-learn confirm step rendered differently every run (full table, bare list, or a question with nothing shown first) and sometimes proposed learnings outside the current PR or logged a fixed bug as a decision.

🛠️ How it works

  • assess always fills a fixed recommendation-table.md asset (Packet/Score/Destination/Reconciliation, one bare value per cell, no parentheses or invented text) before asking approve/modify/skip — never the reverse.
  • gather-protocol.md drops signals outside the source's scope and bugs already fixed without an explicit request to remember them — the two behaviors fix(aidd learn): Inconstancy et bypass user demande #561 actually reported.
  • destinations.md gains a contract case (amend an existing project contract file directly, e.g. skill-authoring.md) and reconciliation gains retracts (remove, no replacement), each with a real apply rule and a matching review-protocol.md check.
  • write-report.md gives 04-write a fixed add/modify/remove report, reusing the emoji convention already used in 01-plan's phase-template.md.
  • Dedup pass: removed rules restated in two homes (transversal vs reference, action Test vs reference row), merged a near-duplicate rule destination row, and closed a gap where assess never actually emitted a source scope for gather to filter against — the scope-drop rule above was silently inert without it.

Verified end to end with headless claude -p runs (real diff as source, missing source, no-candidate source, format-consistency across two different source kinds) and live interactive runs after each fix. Two things stayed out of scope on purpose: the model narrating its Gather reasoning before the table, and occasionally pausing between actions instead of running the whole flow in one pass — both look like harness-level turn behavior (the exact same router boilerplate is used verbatim by 11 other skills in this repo), not something a skill markdown file can reliably suppress.

🧪 How to verify

  • node scripts/check-markdown-links.js — 0 broken.
  • make reload PLUGIN=aidd-context && claude -p "/aidd-context:10-learn diff" on a branch with real changes — confirm rec table shows before any question, bare cell values, correct destination.

⚠️ Heads-up

  • Gather's narration and the occasional stop between actions are accepted as a harness-level limitation, not fixed here (see above).
  • plugins/aidd-context/CATALOG.md is auto-regenerated as part of this diff (two new assets).

🔗 Linked issue

Closes #561

✅ I certify

  • I DO CERTIFY I READ EACH LINE OF THE PULL REQUEST BECAUSE I AM A SOFTWARE ENGINEER, NOT A AI PUPPY.

… enforce scope

The confirm step rendered differently every run (full table, bare list,
or an approval prompt with nothing shown first) and sometimes proposed
learnings outside the current PR or logged a fixed bug as a decision.

- assess always fills a fixed recommendation-table asset (Packet/Score/
  Destination/Reconciliation, one bare value per cell) before asking
  approve/modify/skip, never the reverse
- gather drops signals outside the source's scope and bugs fixed without
  an explicit request to remember them
- destinations gain a `contract` case (amend an existing project contract
  file directly, e.g. skill-authoring.md) and reconciliation gains
  `retracts` (remove, no replacement), each with a real apply rule
- write-report asset gives 04-write a fixed add/modify/remove report,
  matching the emoji convention already used in 01-plan
- dedup pass across router/actions/references: removed restated rules,
  merged near-duplicate destination rows, closed a gap where the assess
  step never emitted a source scope for gather to filter against

Fixes #561

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@blafourcade
blafourcade requested a review from a team as a code owner August 12, 2026 05:18
@blafourcade
blafourcade merged commit e73d872 into next Aug 12, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant