From 653de289c5cfb7fc733a80e59d1b955cdaf9e6ac Mon Sep 17 00:00:00 2001 From: Alex <8973343+alexsoyes@users.noreply.github.com> Date: Sun, 19 Jul 2026 16:39:43 +0200 Subject: [PATCH 01/24] docs(framework): update README title and tagline Align the project messaging with the framework's current branding and focus. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a185504bf..cfafe29fb 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,9 @@ AIDD -# AI-Driven Dev Framework +# AI-Driven Dev Framework ๐Ÿ‡ซ๐Ÿ‡ท -### A French framework for AI-Driven Developers to ship high-quality code. +## Agentic framework for software engineers to produce 100% quality code with IA, agonistically.

7 plugins ยท 40 skills ยท 2 agents ยท MIT From 5ed748087abec3e836fdba87984049257d31f518 Mon Sep 17 00:00:00 2001 From: "aidd-bot[bot]" <290648294+aidd-bot[bot]@users.noreply.github.com> Date: Sun, 19 Jul 2026 14:40:34 +0000 Subject: [PATCH 02/24] chore: release main (#453) Co-authored-by: aidd-bot[bot] <290648294+aidd-bot[bot]@users.noreply.github.com> --- .claude-plugin/marketplace.json | 2 +- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index b36fd3eb0..1988ffc45 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/claude-code-marketplace.json", "name": "aidd-framework", - "version": "5.5.0", + "version": "5.5.1", "description": "Official plugin marketplace for the AI-Driven Development framework", "owner": { "name": "AI-Driven Dev" diff --git a/.release-please-manifest.json b/.release-please-manifest.json index eadca2da5..c4f65dc35 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,5 +1,5 @@ { - ".": "5.5.0", + ".": "5.5.1", "plugins/aidd-context": "2.4.0", "plugins/aidd-dev": "2.3.1", "plugins/aidd-vcs": "2.2.1", diff --git a/CHANGELOG.md b/CHANGELOG.md index fd32adfa7..c6a725849 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [5.5.1](https://github.com/ai-driven-dev/framework/compare/v5.5.0...v5.5.1) (2026-07-19) + + +### Documentation + +* **framework:** update README title and tagline ([653de28](https://github.com/ai-driven-dev/framework/commit/653de289c5cfb7fc733a80e59d1b955cdaf9e6ac)) + ## [5.5.0](https://github.com/ai-driven-dev/framework/compare/v5.4.2...v5.5.0) (2026-07-16) From 766198003bdd18c2f07564dcd8d2762d5c88bba4 Mon Sep 17 00:00:00 2001 From: Baptiste LAFOURCADE Date: Thu, 16 Jul 2026 11:29:17 +0200 Subject: [PATCH 03/24] refactor(aidd-context): action citations use markdown links, not @ Convert every `@../` reference in the action files of skill-generate and project-memory to standard markdown links `[name](path)`, so citations are clickable in editors and on GitHub. Propagate the convention to the contract so generated skills follow suit: R6 now mandates a markdown link, R8 drops the `@`-chain wording, and review-protocol says "cited references". Functional `@`-imports in the memory block (`@aidd_docs/...`) are untouched: those are load mechanics, not citations. Sync docs/CATALOG.md skill-generate action names to the shipped set. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_0177RKF7c5Wpv329Q7QYquV2 --- docs/CATALOG.md | 2 +- .../skills/02-project-memory/actions/01-scan.md | 2 +- .../skills/02-project-memory/actions/02-generate.md | 12 ++++++------ .../skills/02-project-memory/actions/03-sync.md | 6 +++--- .../skills/04-skill-generate/actions/01-scope.md | 8 ++++---- .../skills/04-skill-generate/actions/02-plan.md | 2 +- .../skills/04-skill-generate/actions/03-write.md | 12 ++++++------ .../skills/04-skill-generate/actions/04-validate.md | 4 ++-- .../04-skill-generate/references/review-protocol.md | 2 +- .../04-skill-generate/references/skill-authoring.md | 4 ++-- 10 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/CATALOG.md b/docs/CATALOG.md index ac2e92864..dff6ad294 100644 --- a/docs/CATALOG.md +++ b/docs/CATALOG.md @@ -22,7 +22,7 @@ Bootstrap, project init, context-artifact generation, diagrams, learning, and ex | `01-bootstrap` | Imagine and validate a new SaaS architecture, output an `INSTALL.md` | `01-gather-needs`, `02-propose-candidates`, `03-audit-candidates`, `04-pick-and-design`, `05-write-install-md` | | `02-project-memory` | Give the AI a memory of the project, wired into the tools you use | `01-scan`, `02-generate`, `03-sync` | | `03-context-generate` | Router that dispatches an artifact-generation request to the dedicated generator below | delegates to `04`โ€“`08` (and plugins / marketplaces) | -| `04-skill-generate` | Generate a router-based skill across the host AI tool(s) | `01-capture-intent`, `02-decompose-actions`, `03-draft-skill`, `04-write-actions`, `05-validate` | +| `04-skill-generate` | Generate a router-based skill across the host AI tool(s) | `01-scope`, `02-plan`, `03-write`, `04-validate` | | `05-rule-generate` | Generate a coding rule that governs editor and agent behavior | `01-capture-rule`, `02-write-rule`, `03-validate` | | `06-agent-generate` | Generate an agent across the host AI tool(s) | `01-capture-agent`, `02-write-agent`, `03-validate` | | `07-command-generate` | Generate a flat slash command across the host AI tool(s) | `01-capture-command`, `02-write-command`, `03-validate` | diff --git a/plugins/aidd-context/skills/02-project-memory/actions/01-scan.md b/plugins/aidd-context/skills/02-project-memory/actions/01-scan.md index 57658613d..7bd7a455d 100644 --- a/plugins/aidd-context/skills/02-project-memory/actions/01-scan.md +++ b/plugins/aidd-context/skills/02-project-memory/actions/01-scan.md @@ -14,7 +14,7 @@ The confirmed capabilities, printed nowhere. 1. **Ground.** Look for something to remember: source code, or anything written about what the project is. - Nothing there: stop, say so, send the user to create something first. -2. **Find.** Detect the project's capabilities per `@../references/capability-signals.md`, each with its repo evidence. +2. **Find.** Detect the project's capabilities per [capability-signals.md](../references/capability-signals.md), each with its repo evidence. 3. **Ask.** Show each capability with its evidence. Ask the user to add or drop one. Wait for the answer. 4. **Confirm.** Keep the confirmed set in context for generate. diff --git a/plugins/aidd-context/skills/02-project-memory/actions/02-generate.md b/plugins/aidd-context/skills/02-project-memory/actions/02-generate.md index 63fac9ddf..5d7351e5a 100644 --- a/plugins/aidd-context/skills/02-project-memory/actions/02-generate.md +++ b/plugins/aidd-context/skills/02-project-memory/actions/02-generate.md @@ -12,22 +12,22 @@ The written memory bank, and a report of what changed. ## Process -1. **Scaffold.** Create the tree in `@../references/structure.md`. -2. **Select.** Take the rows to write from `@../references/memory-destinations.md`. -3. **Write.** Write each selected row to its destination, against `@../references/memory-rules.md`. +1. **Scaffold.** Create the tree in [structure.md](../references/structure.md). +2. **Select.** Take the rows to write from [memory-destinations.md](../references/memory-destinations.md). +3. **Write.** Write each selected row to its destination, against [memory-rules.md](../references/memory-rules.md). - The destination is the one the table names. Never derive a path. - Absent file: fill the template, strip its guidance comment. - Existing file: revise it in place. - Report a template section the file now lacks when the project has something for it. Never inject it. 4. **Prune.** A file on disk whose capability is no longer selected: flag it, offer to remove it, delete only on the user's word. -5. **Review.** Have each memory file reviewed against `@../references/review-protocol.md` by an independent agent, a checker agent if the project has one, in parallel. Without subagents, make one fresh pass per file yourself, and say so in the report. +5. **Review.** Have each memory file reviewed against [review-protocol.md](../references/review-protocol.md) by an independent agent, a checker agent if the project has one, in parallel. Without subagents, make one fresh pass per file yourself, and say so in the report. 6. **Fix.** Apply the safe findings. On a duplicated fact, keep its home and drop the copy. -7. **Report.** Fill `@../assets/report.md`. +7. **Report.** Fill [report.md](../assets/report.md). ## Test - `find aidd_docs/memory -mindepth 2 -name '*.md'` returns nothing outside `internal/` and `external/`. -- Every `core` destination and every `@../references/structure.md` path exists at its exact place. +- Every `core` destination and every [structure.md](../references/structure.md) path exists at its exact place. - `internal/` and `external/` exist, each with a `.gitkeep` and no memory file. - No `TODO` or `` remains in a written file. - A line the user added survives a re-run, and a flagged missing section is never injected. diff --git a/plugins/aidd-context/skills/02-project-memory/actions/03-sync.md b/plugins/aidd-context/skills/02-project-memory/actions/03-sync.md index 146409342..1597732c4 100644 --- a/plugins/aidd-context/skills/02-project-memory/actions/03-sync.md +++ b/plugins/aidd-context/skills/02-project-memory/actions/03-sync.md @@ -13,12 +13,12 @@ Each picked tool's context file, carrying the filled block. ## Process 1. **Require.** Stop unless `aidd_docs/memory/` holds a `.md` file. Send the user to generate first. -2. **Detect.** Find the AI tools present per `@../references/tools.md`. +2. **Detect.** Find the AI tools present per [tools.md](../references/tools.md). 3. **Pick.** Show every tool, the detected ones ticked. Let the user pick one or several. Wait for the pick. -4. **Upsert.** Ensure each picked tool's context file carries the block, shaped like `@../assets/AGENTS.md`. +4. **Upsert.** Ensure each picked tool's context file carries the block, shaped like [AGENTS.md](../assets/AGENTS.md). - Absent file: create it from that template. - Existing file: add only the missing `## Memory Management` section or block, leaving the rest untouched. - - If its AIDD structure differs from `@../assets/AGENTS.md`, offer to reconcile it, applying only what the user approves. + - If its AIDD structure differs from [AGENTS.md](../assets/AGENTS.md), offer to reconcile it, applying only what the user approves. - Touch no file a picked tool does not resolve to. 5. **Fill.** Run `hooks/update_memory.js` from the project root, naming the picked tools. 6. **Guard.** On a non-zero script exit, show the error and stop. diff --git a/plugins/aidd-context/skills/04-skill-generate/actions/01-scope.md b/plugins/aidd-context/skills/04-skill-generate/actions/01-scope.md index f5b707b8b..289257e49 100644 --- a/plugins/aidd-context/skills/04-skill-generate/actions/01-scope.md +++ b/plugins/aidd-context/skills/04-skill-generate/actions/01-scope.md @@ -10,14 +10,14 @@ A free-form request to create a skill. ## Process -1. **Detect.** Detect the installed tools per `@../references/tool-detect.md`. -2. **Fill.** For each field in `@../references/scope-frame.md`, propose a value or ask one question. -3. **Check.** Check the name per `@../references/naming.md` and surface any overlap. +1. **Detect.** Detect the installed tools per [tool-detect.md](../references/tool-detect.md). +2. **Fill.** For each field in [scope-frame.md](../references/scope-frame.md), propose a value or ask one question. +3. **Check.** Check the name per [naming.md](../references/naming.md) and surface any overlap. 4. **Confirm.** Hand the confirmed frame to plan. ## Output -The confirmed frame, written nowhere, per `@../references/scope-frame.md`. +The confirmed frame, written nowhere, per [scope-frame.md](../references/scope-frame.md). ## Test diff --git a/plugins/aidd-context/skills/04-skill-generate/actions/02-plan.md b/plugins/aidd-context/skills/04-skill-generate/actions/02-plan.md index 70d910c49..bf6a520bf 100644 --- a/plugins/aidd-context/skills/04-skill-generate/actions/02-plan.md +++ b/plugins/aidd-context/skills/04-skill-generate/actions/02-plan.md @@ -15,7 +15,7 @@ A plan table, one row per action: slug, input to output, test, and any dependenc 1. **List.** List every distinct job the output needs. Modify: start from the existing actions, touch only the jobs the user named. 2. **Atomize.** Prefer few actions, a job each, not a step. Merge two that share most logic. -3. **Number.** Name, number, and give each an observable test, per `@../references/skill-authoring.md`. +3. **Number.** Name, number, and give each an observable test, per [skill-authoring.md](../references/skill-authoring.md). 4. **Confirm.** Present the table, validate each test with the user. ## Test diff --git a/plugins/aidd-context/skills/04-skill-generate/actions/03-write.md b/plugins/aidd-context/skills/04-skill-generate/actions/03-write.md index 8c54eb5b5..dbaa4da24 100644 --- a/plugins/aidd-context/skills/04-skill-generate/actions/03-write.md +++ b/plugins/aidd-context/skills/04-skill-generate/actions/03-write.md @@ -13,17 +13,17 @@ The skill tree at the target, and the list of files written. ## Process -1. **Tree.** Create the shape in `@../references/skill-tree.md`. -2. **Router.** Fill `@../assets/skill-template.md` against `@../references/skill-authoring.md`, strip the scaffold. +1. **Tree.** Create the shape in [skill-tree.md](../references/skill-tree.md). +2. **Router.** Fill [skill-template.md](../assets/skill-template.md) against [skill-authoring.md](../references/skill-authoring.md), strip the scaffold. - Modify: revise the existing SKILL.md in place, keeping the user's edits. -3. **Actions.** Fill `@../assets/action-template.md` per row against `@../references/skill-authoring.md`, its test copied from the plan. +3. **Actions.** Fill [action-template.md](../assets/action-template.md) per row against [skill-authoring.md](../references/skill-authoring.md), its test copied from the plan. - Modify: revise a changed action in place. Leave an untouched one alone. -4. **Hint.** Set `argument-hint` per `@../references/skill-authoring.md`. -5. **Place.** Write once per confirmed target, using `@../references/tool-write.md`. +4. **Hint.** Set `argument-hint` per [skill-authoring.md](../references/skill-authoring.md). +5. **Place.** Write once per confirmed target, using [tool-write.md](../references/tool-write.md). 6. **Check.** Confirm every written path is relative, inside the workspace, outside the plugin install directory, and under the chosen target. Else stop and report it. ## Test - SKILL.md holds a `mermaid` flowchart and a three-column action table. - Every action file contains `## Output`, `## Process`, and `## Test`. -- The written files match `@../references/skill-tree.md`. +- The written files match [skill-tree.md](../references/skill-tree.md). diff --git a/plugins/aidd-context/skills/04-skill-generate/actions/04-validate.md b/plugins/aidd-context/skills/04-skill-generate/actions/04-validate.md index bf4561d64..e9daa7b3c 100644 --- a/plugins/aidd-context/skills/04-skill-generate/actions/04-validate.md +++ b/plugins/aidd-context/skills/04-skill-generate/actions/04-validate.md @@ -12,12 +12,12 @@ A report, one row per file: what was checked and any fix applied. ## Process -1. **Review.** Review each file against `@../references/review-protocol.md`. +1. **Review.** Review each file against [review-protocol.md](../references/review-protocol.md). 2. **Fix.** Apply the confirmed fixes on disk, then re-review the changed files. 3. **Report.** Deliver the findings, even when clean. ## Test - The report covers every file, each with its findings or none. -- No file breaches `@../references/skill-authoring.md`. +- No file breaches [skill-authoring.md](../references/skill-authoring.md). - Any file changed by a fix differs on disk. diff --git a/plugins/aidd-context/skills/04-skill-generate/references/review-protocol.md b/plugins/aidd-context/skills/04-skill-generate/references/review-protocol.md index bfa8a3a36..5a2e55a30 100644 --- a/plugins/aidd-context/skills/04-skill-generate/references/review-protocol.md +++ b/plugins/aidd-context/skills/04-skill-generate/references/review-protocol.md @@ -2,6 +2,6 @@ Review one generated skill file. -1. **Read** the file, its cited `@` refs, and only the sibling files needed to verify a concrete claim. +1. **Read** the file, its cited references, and only the sibling files needed to verify a concrete claim. 2. **Flag** each breach of `skill-authoring.md`, with a reason and a `file:line`. 3. **Return** the flags. Do not edit the file. diff --git a/plugins/aidd-context/skills/04-skill-generate/references/skill-authoring.md b/plugins/aidd-context/skills/04-skill-generate/references/skill-authoring.md index b662fe37e..b38aeae1f 100644 --- a/plugins/aidd-context/skills/04-skill-generate/references/skill-authoring.md +++ b/plugins/aidd-context/skills/04-skill-generate/references/skill-authoring.md @@ -7,9 +7,9 @@ The contract every generated skill satisfies. `skill-generate` obeys it too. - **R3.** `description` is the only always-on text: verb-led, third person, about 240 chars, `Use when the user wants to ` and an optional `Not for `. No colon or dash, no other skill or `/command` named. - **R4.** `argument-hint`: the action slugs when actions run one at a time, the user's cases (`setup | refresh | rewire`) for a pipeline, omitted for one action. - **R5.** `name` is not the invocation token: a colon or prefix breaks loading. In prose call a skill `plugin:folder`. -- **R6.** One fact, one home. An action acts within a router rule and cites a shared reference by `@`, never restating either. +- **R6.** One fact, one home. An action acts within a router rule and cites a shared reference by a markdown link `[name](path)`, never restating either. - **R7.** `references/` are read in place, `assets/` are copied or filled. A template holds no rule. -- **R8.** References stay flat, nesting one directory deep only as a load boundary, and never `@`-chain another. +- **R8.** References stay flat, nesting one directory deep only as a load boundary. Each stands alone, never pulling in another. - **R9.** One file, one artifact. Split two apart only when a path needs one without the other. - **R10.** Budget what a run reads, not file size: the router stays the leanest file. - **R11.** A section earns its content or is omitted, never invented or reordered. From cfaf61ba2933c32b43393b819c9976ba0105ffe3 Mon Sep 17 00:00:00 2001 From: Alex <8973343+alexsoyes@users.noreply.github.com> Date: Sat, 18 Jul 2026 13:47:14 +0200 Subject: [PATCH 04/24] docs(framework): reposition readme as agnostic token-optimized framework (#440) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(aidd-context): add research and apply actions to cook skill Extend 12-cook from author-only to a fuller loop: - 03-research: refine the target recipe via a checklist, fan out one agent per scouting angle, then present alternatives / coverage gaps / counter-intuitive wins plus a recommendation. Ephemeral, never writes. - 04-apply: execute an existing recipe against the project via an agent that tracks the steps as a todo list and confirms before mutating. - upsert: qualitative overlap guard (none/partial/high) that suggests updating an existing recipe instead of creating a duplicate. - recipe-template: steps become "#### N)" headings with what/why, actionable how-bullets, and a mandatory concrete example (command with output, snippet, or screenshot/video). New references/assets: research-playbook, refine-goal-checklist, research-checklist. Co-Authored-By: Claude Opus 4.8 * feat(aidd-context): verify each research candidate before presenting Add a Verify step to cook's 03-research: after curation, spawn one agent per surviving candidate to confirm it exists, capture its official link, and record its latest state. Drop anything that cannot be confirmed against an official source. This makes the checklist's "Confirm claims" real and guards the recipe against hallucinated tools or methods. Co-Authored-By: Claude Opus 4.8 * docs(framework): add token optimization recipe Add recipes/token-optimization.md: a ranked list of token-saving tips for AI coding assistants (measure first, trim CLAUDE.md, caveman, RTK/SNIP, CLI over MCP, progressive disclosure, compact, model routing, cap thinking), each tip in the new template format with a concrete example and an official link verified to exist. Register it in the recipes index. Co-Authored-By: Claude Opus 4.8 * refactor(aidd-context): extract recipe contract and tighten cook template Move the recipe authoring rules out of the template's HTML comment into references/recipe-contract.md, cited by SKILL.md and upsert. The template keeps only the scaffold. - Steps heading carries the goal ("## Steps to ") and each step opens with an emoji. - Step how-bullets follow where-it-is -> install-from-URL -> how-to-use, benefit-first and filler-free. - "## Why" is short, keyword-led, and bold. - SKILL.md description is shorter and high-level, triggered on "recipe" / "cook" / "/cook". Co-Authored-By: Claude Opus 4.8 * fix(aidd-context): repair 12-cook SKILL.md YAML frontmatter The description contained an unquoted "sheets: list" colon, which YAML parses as a mapping value and rejects ("mapping values are not allowed here"), breaking the skill's frontmatter. Replace the colon with a dash. The bug pre-dated this branch (same colon on main). Co-Authored-By: Claude Opus 4.8 * refactor(aidd-context): refine cook recipe structure and apply R13 to cook Review feedback on the cook skill, plus the new includes convention: - Recipe template drops the Time field, groups steps under three level subheadings (Beginner / Intermediate / Expert), and aligns the Level enum to Expert. - upsert now runs `research` (03) first for any new or substantial recipe and drafts only from its verified results, never from memory โ€” the "always research" rule was being skipped as a routing note. - Apply R13 (explicit, scoped includes): the action-specific research aids move out of SKILL.md and are cited from 03-research in fenced blocks; refine-goal-checklist is renamed research-goal-checklist; SKILL.md lists only the global recipe-template and recipe-contract. Co-Authored-By: Claude Opus 4.8 * refactor(aidd-context): make recipe level subheadings optional Level grouping was effectively mandatory. Make the contract state it is optional: group steps under Beginner/Intermediate/Expert only when the recipe spans difficulty levels and grouping helps; a short or single-level recipe lists its steps directly. Relax the upsert Test accordingly. Co-Authored-By: Claude Opus 4.8 * docs(framework): conform token-optimization recipe to recipe contract Align the recipe with references/recipe-contract.md: drop the Time row (no longer in the template), name the section "Steps to " instead of a bare Steps, remove the "ranked by impact" filler line, and give each step how-bullets plus a concrete example. Co-Authored-By: Claude Opus 4.8 (1M context) * docs(framework): split measure steps per tool and drop metadata table Apply review of the token-optimization recipe: - Goal becomes a plain sentence (no blockquote). - Drop the Level/Prerequisites table; level now lives in the subheadings. - Split the bundled "Measure first" step into one step per tool (/context, /cost, /insights, an analytics tool) โ€” one subheading per action. - Each measure step says how to use and read the command, and carries an example output; the analytics step uses a real prompt-analytics run (volumes rounded, cost omitted) showing cache reads dominate. Co-Authored-By: Claude Opus 4.8 * docs(framework): drop the Goal label from token-optimization The recipe opens with a plain description sentence, no "Goal:" label. Co-Authored-By: Claude Opus 4.8 * refactor(aidd-context): recipe header = description sentence, no table Rules extracted from the token-optimization recipe review: - A recipe opens with the H1 title then one plain description sentence โ€” no "Goal:" label, no blockquote, no metadata table. list/upsert parse that sentence; the index becomes `| Recipe | Description |` (Level was dropped, level now lives only in the optional subheadings). - One step = one action; never bundle several tools or commands under a single heading. - Every step's example shows real command output (from docs or by running it); the research playbook now requires capturing a real example and marking interactive output for the human to paste. - `## Why` is one idea per line. Co-Authored-By: Claude Opus 4.8 * docs(framework): use the real prompt-analytics dashboard image Replace the fabricated text output with the tool's official dashboard screenshot (cost by token type makes "cache reads dominate" visible). The slash-command placeholders now ask for a screenshot of the real output. Co-Authored-By: Claude Opus 4.8 * refactor(aidd-context): prefer images over text examples A real screenshot or GIF is unfakeable, faithful, and credible, where a text example can be approximated (the failure we hit). Make the contract and the research playbook prefer an image that matches the action โ€” e.g. a tool's official screenshot โ€” falling back to real text output only when no image exists. Co-Authored-By: Claude Opus 4.8 * docs(framework): show real tool usage in token-optimization - caveman: show its real `/caveman` invocation (and modes), not just a before/after. - RTK: a Mermaid diagram of the proxy flow + the real `rtk ` syntax (was a wrong `rtk proxy โ€ฆ`) and the README's own 200->10 token saving. - CLI vs MCP: a comparison table instead of prose. Co-Authored-By: Claude Opus 4.8 * refactor(aidd-context): add tool-example rules to recipe contract From the token-optimization review: - Show how to invoke a tool (its real command or slash invocation). - Reuse the canonical example from the tool's own site or README, never an invented one. - A "prefer X over Y" step uses a comparison table, not prose. - A structural or flow concept (proxy, pipeline, architecture) gets a small Mermaid diagram. Co-Authored-By: Claude Opus 4.8 * docs(framework): use caveman's real before/after example Replace the invented caveman before/after with the verbatim example from its README (rule F: reuse the tool's own canonical example). Co-Authored-By: Claude Opus 4.8 * docs(framework): numbered actions, valid-JSON config, tighter sections - Actions are numbered lists; descriptions are prose (no description-bullets). - settings.json shown as valid JSON, not a bash fragment. - RTK Mermaid uses concrete values (cargo test ~25k -> ~2.5k tokens). - CLI vs MCP notes MCP tool/context selection (cheaper, still slower). - Step 10 reworded plainly ("load knowledge on demand"). - Drop the weak Verify and the redundant Related; add a short conclusion. Co-Authored-By: Claude Opus 4.8 * refactor(aidd-context): add bullet/diagram/config/section rules to contract From the token-optimization review: - Actions are a numbered list; descriptions and indications are prose, never bullets. - A Mermaid diagram carries concrete example values. - A config example uses the file's real syntax (valid JSON for settings.json, valid YAML for frontmatter, ...). - Reuse a tool's canonical example captured verbatim โ€” never a paraphrase or on the strength of a summary that one exists. - No `## Related` section (links live inline); `## Verify` is optional; recipes may end with a short conclusion. Co-Authored-By: Claude Opus 4.8 * docs(framework): expert steps use verified Claude Code config - Step 10 now audits which skills/tools run via `Ctrl+O` (toggles the detailed transcript), instead of the vaguer "load on demand". - Step 11 routes by difficulty with the real `model:` frontmatter field on a skill or agent (haiku/sonnet/opus/inherit) โ€” example agent pinned to haiku. Both verified against the official Claude Code docs (interactive-mode, skills, sub-agents). Co-Authored-By: Claude Opus 4.8 * docs(framework): point the instruction-file step at AGENTS.md Use the framework's own concise AGENTS.md as the worked example for a trimmed instruction file, with its real rules (answer first, no narration), instead of a generic snippet. Co-Authored-By: Claude Opus 4.8 * refactor(aidd-context): apply analyses a recipe and asks before acting A recipe is often a human tutorial, not an agent-runnable procedure. So apply now reads the recipe, classifies each step agent-doable vs human-only, and asks the user what to do before any change โ€” then runs the chosen agent-doable steps and reports the human-only ones. Co-Authored-By: Claude Opus 4.8 * docs(framework): add five verified token levers to the recipe From a research pass, all verified against official Claude Code docs: - Plan mode (Shift+Tab ร—2) โ€” avoid execution-phase rework. - `/clear` between tasks โ€” drop stale context instead of re-billing it. - Deny reads (`permissions.deny`) โ€” keep vendor/dist/secrets out of context; the official answer to the unshipped `.claudeignore`. - Subagent offload โ€” run high-volume ops in an isolated context. - Protect cache hits โ€” avoid mid-task model/MCP/effort switches that invalidate the cache (closes the loop on "cache reads dominate"). Also fold the built-in `outputStyle: concise` into the "talk less" step. Co-Authored-By: Claude Opus 4.8 * feat(aidd-context): bundle cook recipes in skill * feat(framework): publish AIDDy v2 pet * docs(framework): reposition readme as agnostic token-optimized framework * feat: avoid uncached AGENTS.md * docs: add fixing behavior for assertions --------- Co-authored-by: Claude Opus 4.8 --- AGENTS.md | 2 +- assets/pets/aiddy-spritesheet.webp | Bin 1866930 -> 2351540 bytes .../skills/02-project-memory/assets/AGENTS.md | 2 +- .../memory/core/coding-assertions.md | 16 ++++-- .../assets/recipes/install-aiddy-in-codex.md | 54 ++++++++++++++++++ 5 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 plugins/aidd-context/skills/12-cook/assets/recipes/install-aiddy-in-codex.md diff --git a/AGENTS.md b/AGENTS.md index 51237dabf..bb7c43dbd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # AGENTS.md -> On the first message of a conversation, tell the user: "AI-Driven Development ON - Date: {current_date}, TZ: {current_timezone}." +> On 1st message, greet user with: "AI-Driven Development On โšก" ## Behavior diff --git a/assets/pets/aiddy-spritesheet.webp b/assets/pets/aiddy-spritesheet.webp index 248190996c7c39366f85608ae24cec71b0e02f0e..aede38d7175ca5aa7a0a8d504ed1e5acb7da119d 100644 GIT binary patch literal 2351540 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