From 532ff453021f5d027d704df3acea7d994bc9f041 Mon Sep 17 00:00:00 2001 From: alexsoyes Date: Thu, 23 Jul 2026 16:43:48 +0200 Subject: [PATCH 1/4] feat(aidd-context): evaluate communication preferences Align the project context template with scannable, action-oriented communication and keep acceptance under explicit human review in fresh subagent scenarios. --- plugins/aidd-context/CATALOG.md | 1 + .../skills/02-project-memory/SKILL.md | 16 +++++----- .../02-project-memory/actions/04-evaluate.md | 28 ++++++++++++++++++ .../skills/02-project-memory/assets/AGENTS.md | 17 ++++++----- .../assets/tests/communication.md | 29 +++++++++++++++++++ 5 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md create mode 100644 plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md diff --git a/plugins/aidd-context/CATALOG.md b/plugins/aidd-context/CATALOG.md index 32e627266..9b8b57cab 100644 --- a/plugins/aidd-context/CATALOG.md +++ b/plugins/aidd-context/CATALOG.md @@ -74,6 +74,7 @@ Auto-generated index of skills, agents, references and assets shipped by the `ai | `actions` | [01-scan.md](skills/02-project-memory/actions/01-scan.md) | - | | `actions` | [02-generate.md](skills/02-project-memory/actions/02-generate.md) | - | | `actions` | [03-sync.md](skills/02-project-memory/actions/03-sync.md) | - | +| `actions` | [04-evaluate.md](skills/02-project-memory/actions/04-evaluate.md) | - | | `assets` | [AGENTS.md](skills/02-project-memory/assets/AGENTS.md) | - | | `assets` | [CONTRIBUTING.md](skills/02-project-memory/assets/CONTRIBUTING.md) | - | | `assets` | [GUIDELINES.md](skills/02-project-memory/assets/GUIDELINES.md) | - | diff --git a/plugins/aidd-context/skills/02-project-memory/SKILL.md b/plugins/aidd-context/skills/02-project-memory/SKILL.md index bb3179527..0e98bc38a 100644 --- a/plugins/aidd-context/skills/02-project-memory/SKILL.md +++ b/plugins/aidd-context/skills/02-project-memory/SKILL.md @@ -1,7 +1,7 @@ --- name: 02-project-memory description: Build the project's memory of its architecture, conventions, and decisions, and wire it into the tools you use. Use to set up or refresh project memory. Not for editing one existing memory file. -argument-hint: setup | refresh | rewire +argument-hint: setup | refresh | rewire | test --- # Project Memory @@ -10,17 +10,19 @@ argument-hint: setup | refresh | rewire flowchart LR build([setup or refresh]) --> scan --> generate --> sync rewire([rewire only]) --> sync + test([test communication]) --> evaluate ``` ## Actions -Run the flow above. No argument, `setup`, or `refresh` starts at scan. `rewire` runs sync alone. Read an action's file in `actions/` before running it. +Run the flow above. No argument, `setup`, or `refresh` starts at scan. `rewire` runs sync alone. `test` runs evaluate alone. Read an action's file in `actions/` before running it. -| Action | Does | -| -------- | -------------------------- | -| scan | read the project | -| generate | write the memory | -| sync | pick the tools, wire it in | +| Action | Does | +| -------- | -------------------------------------------------- | +| scan | read the project | +| generate | write the memory | +| sync | pick the tools, wire it in | +| evaluate | test the communication contract in fresh context | ## Transversal rules diff --git a/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md b/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md new file mode 100644 index 000000000..a4face283 --- /dev/null +++ b/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md @@ -0,0 +1,28 @@ +# 04 - Evaluate + +Test the communication contract without conversation history, then let the user judge the raw response. + +## Input + +- The full `@../assets/AGENTS.md` template. +- One scenario from `@../assets/tests/communication.md`. + +## Output + +The subagent's unedited response and the user's verdict. + +## Process + +1. **Select.** Use the scenario the user names. With one available scenario, name and use it. With several and no choice, show their names and wait for the user to pick one. +2. **Isolate.** Have the caller spawn one fresh subagent with no inherited conversation. If fresh context is unavailable, stop; a self-test or role-play is not a valid fallback. +3. **Compose.** Give the subagent only the full `AGENTS.md` content as its task-specific instructions and the exact text under the scenario's `User prompt`. Do not send the review checks, an expected response, prior feedback, or repository findings. +4. **Run.** Let the subagent answer once. Do not coach it, retry it, or ask a follow-up. +5. **Return.** Show its response verbatim, followed by the scenario's human review checks. Do not summarize, correct, score, or defend the response. +6. **Judge.** Wait for the user's verdict. Record no pass until the user explicitly accepts the response. + +## Test + +- The subagent receives no inherited conversation. +- Its task-specific context contains only `AGENTS.md` and the selected user prompt. +- The returned response is byte-for-byte unchanged. +- The result remains ungraded until the user gives a verdict. diff --git a/plugins/aidd-context/skills/02-project-memory/assets/AGENTS.md b/plugins/aidd-context/skills/02-project-memory/assets/AGENTS.md index 9d3c13395..ea5affcee 100644 --- a/plugins/aidd-context/skills/02-project-memory/assets/AGENTS.md +++ b/plugins/aidd-context/skills/02-project-memory/assets/AGENTS.md @@ -10,17 +10,20 @@ ## Communication -- **Answer first:** result before reason. Drop pleasantries (sure, of course, happy to) and hedging. -- **No preamble or recap:** don't restate the request or summarize visible changes. Skip suggestion menus; end by stating the single next action you'll take (or that nothing's pending), so the user can redirect. -- **Evidence over assertion:** back "works", "tested", "fixed" with the command, output, or file that proves it. -- **Quote the shortest decisive line** of an error or log, not the whole dump. -- **No tool-call narration.** No decorative tables or emoji unless they carry information, and no em-dashes. -- **In chat, write for a reader who scans:** telegraphic, fewest words, fragments over sentences, arrows (=>) for relationships. Cut any word that doesn't change meaning. Normal prose in authored docs and code. Exception: full prose for security warnings, irreversible actions, ordered steps, and any explanation where nuance matters - clarity wins. +- **Orient in the first line:** make it independently useful: the direct answer, the observable result, the smallest action the user must take, or the blocker or decision preventing progress. Put context and reasoning afterward. Never announce the response or restate the request. +- **Write for scanning:** prefer short headings and bullets for parallel facts, findings, options, or constraints. Use numbered lists only when order matters. Keep one idea or action per item and each visible group to five items; rank or split longer material. Use prose when compression would lose nuance. +- **Minimize activation friction:** when the user must act, state a concrete verb and object, include the exact input, location, or completion criterion they need, and make the first action doable now. Break multi-step work into bounded actions; never bury required actions inside an explanation. +- **Keep the current state on screen:** during multi-turn work, state the current milestone, its observable outcome, and what remains without replaying the history. Show position such as `3/5` only when the total is real and known. Make wins concrete: what now works and the evidence that proves it. +- **Expose causality and certainty:** for diagnoses, decisions, and tradeoffs, use compact relations such as `cause => consequence => action` when clearer than prose. Distinguish verified facts, inferences, and unknowns. For a failure, quote the shortest decisive evidence, then give the established cause and fix; if unknown, name the next diagnostic action. +- **Land on one next move:** if anything remains open, end with one concrete next action and its owner when ambiguous. If the work is complete, stop at the decisive result. No suggestion menus, sidebars, recaps, closing pleasantries, or "anything else?" prompts. +- **Estimate only when it changes a decision:** for user effort, give a conditional range and the assumptions that change it. Never hide scope behind labels such as "quick" or "some work", promise an agent completion time, or invent precision. +- **Keep the tone direct and proportional:** use concrete nouns and verbs, short sentences, and fragments when unambiguous. Remove filler, empty hedging, and emotional framing around errors. Use full prose for authored docs, safety warnings, irreversible actions, and explanations where nuance matters. +- **No tool-call narration.** Use tables, visuals, or emoji only when they materially improve comprehension. No em dashes. ## Action - **Surgical changes:** ship the minimum that solves the problem; touch only what the task needs, and leave the code cleaner than you found it. -- **Stay focused, not scattered:** exceed the literal ask only when it clearly helps, not by default. When you spot an unrelated issue, note it in one line and keep going; detour only if it blocks the task. +- **Stay focused, not scattered:** exceed the literal ask only when it clearly helps. Suppress unrelated issues; mention one only when it blocks the task or creates an immediate material risk. - **Solve your own issues first:** genuinely try to resolve it yourself before escalating to the human. - **Do not commit or push** unless the user asks. - **Don't assume your knowledge is current.** diff --git a/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md b/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md new file mode 100644 index 000000000..8f5607883 --- /dev/null +++ b/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md @@ -0,0 +1,29 @@ +# Communication evaluation scenarios + +## Decision under pressure + +### User prompt + +Je dirige une équipe de huit personnes. Notre lancement public est prévu vendredi. Un bug de paiement fait échouer environ 15 % des essais. Le correctif prendra entre trois et cinq jours. Un contournement manuel réduirait les échecs, mais mobiliserait deux personnes à temps plein pendant une semaine. Le client pilote attend notre décision avant 16 h. J'ai une réunion d'équipe dans 25 minutes et aucun message n'est préparé. Dois-je maintenir la date ou reporter, et que dois-je faire avant la réunion ? Au passage, notre logo commence à dater. + +### Human review + +- The first line gives the decision or the immediate action, without announcing the response. +- Short bullets expose the facts and tradeoffs; numbered steps appear only for ordered actions. +- The reasoning makes causality and uncertainty visible without inventing facts. +- The logo tangent disappears because it neither blocks the decision nor creates an immediate material risk. +- The response ends on one concrete next move, without a suggestion menu or closing pleasantry. + +## Authentication regression + +### User prompt + +Mon API utilise Node 20, TypeScript et Express. Depuis ce matin, le test d'intégration de connexion échoue avec `expected 200, received 401`, puis `JsonWebTokenError: invalid signature`. `src/auth/create-session.ts:18` signe le token avec `process.env.AUTH_SECRET`. `src/auth/verify-token.ts:42` le vérifie avec `process.env.JWT_SECRET ?? "dev-secret"`. Le fichier `.env.test` définit uniquement `AUTH_SECRET=test-secret`. Je veux la correction minimale, les changements exacts et la commande permettant de vérifier le résultat. Au passage, `npm outdated` remonte aussi 17 dépendances obsolètes. + +### Human review + +- The first line identifies the concrete correction, without a preamble. +- The response exposes the verified causal chain from mismatched secrets to the `401`. +- Ordered changes are short, numbered, and precise enough to execute immediately. +- The unrelated dependency upgrades are suppressed. +- The response ends with one exact verification action and does not claim success before the test runs. From f424f0c85c316d0a6dfc69ef2354492087d85630 Mon Sep 17 00:00:00 2001 From: alexsoyes Date: Fri, 24 Jul 2026 13:49:43 +0200 Subject: [PATCH 2/4] fix(aidd-context): sharpen communication evaluation --- .../skills/02-project-memory/SKILL.md | 2 +- .../02-project-memory/actions/04-evaluate.md | 24 +++++++++---------- .../assets/tests/communication.md | 16 ------------- 3 files changed, 12 insertions(+), 30 deletions(-) diff --git a/plugins/aidd-context/skills/02-project-memory/SKILL.md b/plugins/aidd-context/skills/02-project-memory/SKILL.md index 0e98bc38a..cd4b345bc 100644 --- a/plugins/aidd-context/skills/02-project-memory/SKILL.md +++ b/plugins/aidd-context/skills/02-project-memory/SKILL.md @@ -22,7 +22,7 @@ Run the flow above. No argument, `setup`, or `refresh` starts at scan. `rewire` | scan | read the project | | generate | write the memory | | sync | pick the tools, wire it in | -| evaluate | test the communication contract in fresh context | +| evaluate | run one communication prompt for user judgment | ## Transversal rules diff --git a/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md b/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md index a4face283..f18756065 100644 --- a/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md +++ b/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md @@ -1,28 +1,26 @@ # 04 - Evaluate -Test the communication contract without conversation history, then let the user judge the raw response. +Run one communication scenario in fresh context, then let the user judge the raw response. ## Input -- The full `@../assets/AGENTS.md` template. -- One scenario from `@../assets/tests/communication.md`. +One scenario from `@../assets/tests/communication.md`. ## Output -The subagent's unedited response and the user's verdict. +The subagent's unedited response, shown to the user. ## Process -1. **Select.** Use the scenario the user names. With one available scenario, name and use it. With several and no choice, show their names and wait for the user to pick one. -2. **Isolate.** Have the caller spawn one fresh subagent with no inherited conversation. If fresh context is unavailable, stop; a self-test or role-play is not a valid fallback. -3. **Compose.** Give the subagent only the full `AGENTS.md` content as its task-specific instructions and the exact text under the scenario's `User prompt`. Do not send the review checks, an expected response, prior feedback, or repository findings. -4. **Run.** Let the subagent answer once. Do not coach it, retry it, or ask a follow-up. -5. **Return.** Show its response verbatim, followed by the scenario's human review checks. Do not summarize, correct, score, or defend the response. -6. **Judge.** Wait for the user's verdict. Record no pass until the user explicitly accepts the response. +1. **Load.** Load the scenario the user names from `communication.md`. With several and no choice, show their names and wait for the user to pick one. +2. **Spawn.** Spawn one fresh subagent with the exact text under the scenario's `User prompt`. Send nothing else. +3. **Wait.** Wait for the subagent to finish. +4. **Receive.** Retrieve its final response. +5. **Verify.** Verify that the response is complete and unchanged. Do not coach, retry, summarize, correct, score, or defend it. +6. **Judge.** Show the response verbatim to the user for judgment. ## Test -- The subagent receives no inherited conversation. -- Its task-specific context contains only `AGENTS.md` and the selected user prompt. +- The subagent receives the selected user prompt verbatim and no task-specific instructions. - The returned response is byte-for-byte unchanged. -- The result remains ungraded until the user gives a verdict. +- Only the user judges the response. diff --git a/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md b/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md index 8f5607883..620af34ea 100644 --- a/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md +++ b/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md @@ -6,24 +6,8 @@ Je dirige une équipe de huit personnes. Notre lancement public est prévu vendredi. Un bug de paiement fait échouer environ 15 % des essais. Le correctif prendra entre trois et cinq jours. Un contournement manuel réduirait les échecs, mais mobiliserait deux personnes à temps plein pendant une semaine. Le client pilote attend notre décision avant 16 h. J'ai une réunion d'équipe dans 25 minutes et aucun message n'est préparé. Dois-je maintenir la date ou reporter, et que dois-je faire avant la réunion ? Au passage, notre logo commence à dater. -### Human review - -- The first line gives the decision or the immediate action, without announcing the response. -- Short bullets expose the facts and tradeoffs; numbered steps appear only for ordered actions. -- The reasoning makes causality and uncertainty visible without inventing facts. -- The logo tangent disappears because it neither blocks the decision nor creates an immediate material risk. -- The response ends on one concrete next move, without a suggestion menu or closing pleasantry. - ## Authentication regression ### User prompt Mon API utilise Node 20, TypeScript et Express. Depuis ce matin, le test d'intégration de connexion échoue avec `expected 200, received 401`, puis `JsonWebTokenError: invalid signature`. `src/auth/create-session.ts:18` signe le token avec `process.env.AUTH_SECRET`. `src/auth/verify-token.ts:42` le vérifie avec `process.env.JWT_SECRET ?? "dev-secret"`. Le fichier `.env.test` définit uniquement `AUTH_SECRET=test-secret`. Je veux la correction minimale, les changements exacts et la commande permettant de vérifier le résultat. Au passage, `npm outdated` remonte aussi 17 dépendances obsolètes. - -### Human review - -- The first line identifies the concrete correction, without a preamble. -- The response exposes the verified causal chain from mismatched secrets to the `401`. -- Ordered changes are short, numbered, and precise enough to execute immediately. -- The unrelated dependency upgrades are suppressed. -- The response ends with one exact verification action and does not claim success before the test runs. From ed2472c2b006fc177d80d725f5e0e33c32f84de0 Mon Sep 17 00:00:00 2001 From: alexsoyes Date: Fri, 24 Jul 2026 13:58:04 +0200 Subject: [PATCH 3/4] refactor(aidd-context): simplify communication evaluation --- .../skills/02-project-memory/actions/04-evaluate.md | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md b/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md index f18756065..836eefdd7 100644 --- a/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md +++ b/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md @@ -13,14 +13,6 @@ The subagent's unedited response, shown to the user. ## Process 1. **Load.** Load the scenario the user names from `communication.md`. With several and no choice, show their names and wait for the user to pick one. -2. **Spawn.** Spawn one fresh subagent with the exact text under the scenario's `User prompt`. Send nothing else. +2. **Spawn.** Spawn one fresh subagent with the scenario's user prompt. 3. **Wait.** Wait for the subagent to finish. -4. **Receive.** Retrieve its final response. -5. **Verify.** Verify that the response is complete and unchanged. Do not coach, retry, summarize, correct, score, or defend it. -6. **Judge.** Show the response verbatim to the user for judgment. - -## Test - -- The subagent receives the selected user prompt verbatim and no task-specific instructions. -- The returned response is byte-for-byte unchanged. -- Only the user judges the response. +4. **Return.** Show its response to the user for judgment. From ccacae2c93dc3cc80fc68bbb6993443c02d0b1ce Mon Sep 17 00:00:00 2001 From: alexsoyes Date: Fri, 24 Jul 2026 15:35:44 +0200 Subject: [PATCH 4/4] refactor(aidd-context): sharpen communication contract --- plugins/aidd-context/CATALOG.md | 2 +- .../skills/02-project-memory/SKILL.md | 20 +++++++++---------- .../02-project-memory/actions/04-evaluate.md | 18 ----------------- .../actions/04-test-prompt.md | 18 +++++++++++++++++ .../skills/02-project-memory/assets/AGENTS.md | 19 ++++++++---------- .../assets/tests/communication.md | 13 ------------ .../02-project-memory/assets/tests/prompt.md | 1 + 7 files changed, 38 insertions(+), 53 deletions(-) delete mode 100644 plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md create mode 100644 plugins/aidd-context/skills/02-project-memory/actions/04-test-prompt.md delete mode 100644 plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md create mode 100644 plugins/aidd-context/skills/02-project-memory/assets/tests/prompt.md diff --git a/plugins/aidd-context/CATALOG.md b/plugins/aidd-context/CATALOG.md index 9b8b57cab..e17f1bdd4 100644 --- a/plugins/aidd-context/CATALOG.md +++ b/plugins/aidd-context/CATALOG.md @@ -74,7 +74,7 @@ Auto-generated index of skills, agents, references and assets shipped by the `ai | `actions` | [01-scan.md](skills/02-project-memory/actions/01-scan.md) | - | | `actions` | [02-generate.md](skills/02-project-memory/actions/02-generate.md) | - | | `actions` | [03-sync.md](skills/02-project-memory/actions/03-sync.md) | - | -| `actions` | [04-evaluate.md](skills/02-project-memory/actions/04-evaluate.md) | - | +| `actions` | [04-test-prompt.md](skills/02-project-memory/actions/04-test-prompt.md) | - | | `assets` | [AGENTS.md](skills/02-project-memory/assets/AGENTS.md) | - | | `assets` | [CONTRIBUTING.md](skills/02-project-memory/assets/CONTRIBUTING.md) | - | | `assets` | [GUIDELINES.md](skills/02-project-memory/assets/GUIDELINES.md) | - | diff --git a/plugins/aidd-context/skills/02-project-memory/SKILL.md b/plugins/aidd-context/skills/02-project-memory/SKILL.md index cd4b345bc..d7b5037de 100644 --- a/plugins/aidd-context/skills/02-project-memory/SKILL.md +++ b/plugins/aidd-context/skills/02-project-memory/SKILL.md @@ -1,7 +1,7 @@ --- name: 02-project-memory description: Build the project's memory of its architecture, conventions, and decisions, and wire it into the tools you use. Use to set up or refresh project memory. Not for editing one existing memory file. -argument-hint: setup | refresh | rewire | test +argument-hint: setup | refresh | rewire | test-prompt --- # Project Memory @@ -10,23 +10,23 @@ argument-hint: setup | refresh | rewire | test flowchart LR build([setup or refresh]) --> scan --> generate --> sync rewire([rewire only]) --> sync - test([test communication]) --> evaluate + test_prompt([test prompt]) ``` ## Actions -Run the flow above. No argument, `setup`, or `refresh` starts at scan. `rewire` runs sync alone. `test` runs evaluate alone. Read an action's file in `actions/` before running it. +Run the flow above. No argument, `setup`, or `refresh` starts at scan. `rewire` runs sync alone. `test-prompt` runs alone. Read an action's file in `actions/` before running it. -| Action | Does | -| -------- | -------------------------------------------------- | -| scan | read the project | -| generate | write the memory | -| sync | pick the tools, wire it in | -| evaluate | run one communication prompt for user judgment | +| Action | Does | +| ----------- | ----------------------------------------- | +| scan | read the project | +| generate | write the memory | +| sync | pick the tools, wire it in | +| test-prompt | send one prompt for user judgment | ## Transversal rules - If a referenced file cannot be read, stop and say so. Never invent its content. - Ask before anything ambiguous. Never default silently. - Create or revise a file, keeping the user's edits. Delete one only when the user asks. -- End with a short report of what changed. +- After an action changes files, end with a short report of what changed. diff --git a/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md b/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md deleted file mode 100644 index 836eefdd7..000000000 --- a/plugins/aidd-context/skills/02-project-memory/actions/04-evaluate.md +++ /dev/null @@ -1,18 +0,0 @@ -# 04 - Evaluate - -Run one communication scenario in fresh context, then let the user judge the raw response. - -## Input - -One scenario from `@../assets/tests/communication.md`. - -## Output - -The subagent's unedited response, shown to the user. - -## Process - -1. **Load.** Load the scenario the user names from `communication.md`. With several and no choice, show their names and wait for the user to pick one. -2. **Spawn.** Spawn one fresh subagent with the scenario's user prompt. -3. **Wait.** Wait for the subagent to finish. -4. **Return.** Show its response to the user for judgment. diff --git a/plugins/aidd-context/skills/02-project-memory/actions/04-test-prompt.md b/plugins/aidd-context/skills/02-project-memory/actions/04-test-prompt.md new file mode 100644 index 000000000..05da89159 --- /dev/null +++ b/plugins/aidd-context/skills/02-project-memory/actions/04-test-prompt.md @@ -0,0 +1,18 @@ +# 04 - Test prompt + +Send one prompt to a fresh subagent, then show its response to the user. + +## Input + +The prompt from `@../assets/tests/prompt.md`. + +## Output + +The subagent's unedited response, shown to the user. + +## Process + +1. **Load.** Load `prompt.md`. +2. **Spawn.** Spawn one fresh subagent with the prompt. +3. **Wait.** Wait for the subagent to finish. +4. **Return.** Show its response to the user for judgment. diff --git a/plugins/aidd-context/skills/02-project-memory/assets/AGENTS.md b/plugins/aidd-context/skills/02-project-memory/assets/AGENTS.md index ea5affcee..29b09db02 100644 --- a/plugins/aidd-context/skills/02-project-memory/assets/AGENTS.md +++ b/plugins/aidd-context/skills/02-project-memory/assets/AGENTS.md @@ -10,15 +10,12 @@ ## Communication -- **Orient in the first line:** make it independently useful: the direct answer, the observable result, the smallest action the user must take, or the blocker or decision preventing progress. Put context and reasoning afterward. Never announce the response or restate the request. -- **Write for scanning:** prefer short headings and bullets for parallel facts, findings, options, or constraints. Use numbered lists only when order matters. Keep one idea or action per item and each visible group to five items; rank or split longer material. Use prose when compression would lose nuance. -- **Minimize activation friction:** when the user must act, state a concrete verb and object, include the exact input, location, or completion criterion they need, and make the first action doable now. Break multi-step work into bounded actions; never bury required actions inside an explanation. -- **Keep the current state on screen:** during multi-turn work, state the current milestone, its observable outcome, and what remains without replaying the history. Show position such as `3/5` only when the total is real and known. Make wins concrete: what now works and the evidence that proves it. -- **Expose causality and certainty:** for diagnoses, decisions, and tradeoffs, use compact relations such as `cause => consequence => action` when clearer than prose. Distinguish verified facts, inferences, and unknowns. For a failure, quote the shortest decisive evidence, then give the established cause and fix; if unknown, name the next diagnostic action. -- **Land on one next move:** if anything remains open, end with one concrete next action and its owner when ambiguous. If the work is complete, stop at the decisive result. No suggestion menus, sidebars, recaps, closing pleasantries, or "anything else?" prompts. -- **Estimate only when it changes a decision:** for user effort, give a conditional range and the assumptions that change it. Never hide scope behind labels such as "quick" or "some work", promise an agent completion time, or invent precision. -- **Keep the tone direct and proportional:** use concrete nouns and verbs, short sentences, and fragments when unambiguous. Remove filler, empty hedging, and emotional framing around errors. Use full prose for authored docs, safety warnings, irreversible actions, and explanations where nuance matters. -- **No tool-call narration.** Use tables, visuals, or emoji only when they materially improve comprehension. No em dashes. +- **Think deeply, report sharply:** reason as deeply as the task needs, then lead with the direct answer, observable result, immediate action, or blocker. Add only the context needed to act. Expand when explicitly asked or when correctness or safety requires it, and stay structured and concise. No preamble, response announcement, or request restatement. +- **Make action executable:** give a concrete verb and object plus the exact input, location, or completion criterion. Make the first step small and doable now. Number steps only when order matters. Express user effort as a concrete conditional range, never a vague estimate. +- **Write chat for scanning:** use the fewest useful words, headings and bullets for parallel information, and one idea per item; use fragments only when clear. When a list exceeds five items, split or rank it; never omit required items. Never apply chat compression to authored docs or code. Add only the detail required for safety, irreversible actions, ordered instructions, and correctness. Clarity, evidence, and completeness beat brevity. +- **Ground claims and reasoning:** prove `works`, `tested`, and `fixed` with the command and decisive result, or the file that demonstrates it. For decisions and diagnoses, show `cause => consequence => action` when useful; separate facts, inferences, and unknowns. For failures, quote the shortest decisive evidence, then give the fix or next diagnostic. +- **Keep progress and the next move visible:** in multi-turn work, show the current milestone, completed work, observable outcome, and what remains, not the history. End with one concrete action and owner if open; if complete, stop at the decisive result. No menus, recaps, or pleasantries. +- **No routine tool-call narration.** No empty hedging. Use tables, visuals, or emoji only when they materially improve comprehension. No em dashes. ## Action @@ -29,8 +26,8 @@ - **Don't assume your knowledge is current.** - **Don't guess** APIs, signatures, flags, or behavior - read the source or docs to confirm before relying on them. - **Ambiguous or expensive task:** ask one sharp question to pin down scope before building, rather than guess. -- **Batch independent operations** in one pass, not one at a time. -- **Fan out** independent subtasks to parallel subagents when you own the overall flow and the work is genuinely parallel. +- **Batch independent tool operations** in one pass, not one at a time. +- **Parallelize independent work:** when you own the flow and parallelism is available and worthwhile, dispatch independent bounded workstreams to subagents; keep dependent steps sequential. - **Before adding any instruction, finding, or rule, check whether an existing one already covers or contradicts it.** If so, don't add a parallel: delete it, merge it into the stronger one, or rewrite with explicit scope and priority. - **Name by intention, not mechanism:** describe the goal or responsibility, not the tool or file format. diff --git a/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md b/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md deleted file mode 100644 index 620af34ea..000000000 --- a/plugins/aidd-context/skills/02-project-memory/assets/tests/communication.md +++ /dev/null @@ -1,13 +0,0 @@ -# Communication evaluation scenarios - -## Decision under pressure - -### User prompt - -Je dirige une équipe de huit personnes. Notre lancement public est prévu vendredi. Un bug de paiement fait échouer environ 15 % des essais. Le correctif prendra entre trois et cinq jours. Un contournement manuel réduirait les échecs, mais mobiliserait deux personnes à temps plein pendant une semaine. Le client pilote attend notre décision avant 16 h. J'ai une réunion d'équipe dans 25 minutes et aucun message n'est préparé. Dois-je maintenir la date ou reporter, et que dois-je faire avant la réunion ? Au passage, notre logo commence à dater. - -## Authentication regression - -### User prompt - -Mon API utilise Node 20, TypeScript et Express. Depuis ce matin, le test d'intégration de connexion échoue avec `expected 200, received 401`, puis `JsonWebTokenError: invalid signature`. `src/auth/create-session.ts:18` signe le token avec `process.env.AUTH_SECRET`. `src/auth/verify-token.ts:42` le vérifie avec `process.env.JWT_SECRET ?? "dev-secret"`. Le fichier `.env.test` définit uniquement `AUTH_SECRET=test-secret`. Je veux la correction minimale, les changements exacts et la commande permettant de vérifier le résultat. Au passage, `npm outdated` remonte aussi 17 dépendances obsolètes. diff --git a/plugins/aidd-context/skills/02-project-memory/assets/tests/prompt.md b/plugins/aidd-context/skills/02-project-memory/assets/tests/prompt.md new file mode 100644 index 000000000..2efb480d1 --- /dev/null +++ b/plugins/aidd-context/skills/02-project-memory/assets/tests/prompt.md @@ -0,0 +1 @@ +Je dirige une équipe de huit personnes. Notre lancement public est prévu vendredi. Un bug de paiement fait échouer environ 15 % des essais. Le correctif prendra entre trois et cinq jours. Un contournement manuel réduirait les échecs, mais mobiliserait deux personnes à temps plein pendant une semaine. Le client pilote attend notre décision avant 16 h. J'ai une réunion d'équipe dans 25 minutes et aucun message n'est préparé. Dois-je maintenir la date ou reporter, et que dois-je faire avant la réunion ? Au passage, notre logo commence à dater.