implementation-memory skill
Maintains a fixed-size procedural memory of implementation lessons to improve future build executions via a markdown file.
- GitHubスター
- 16
- ファイル
- 1
- 最終コミット
- 2026年10月5日
- ライセンス
- MIT
- 許可されたツール
- —
implementation-memory skillは何をしますか
implementation-memoryはAgent Skillsです。 Maintains a fixed-size procedural memory of implementation lessons to improve future build executions via a markdown file.
skillのSKILL.mdから生成された要約。
implementation-memory skill について
Developers looking to prevent recurring mistakes during the software development lifecycle can use this tool to maintain a procedural memory of implementation lessons. It functions by capturing durable insights from code reviews, test failures, and design gate bounces, then storing them as actionable rules in a markdown file located at .bla/implementation-memory.md. Unlike standard conversation logs or design documents, this system focuses strictly on procedural rules to improve future build executions.
An agent should load this skill during various workflow stages such as /build, /design, or /spec to select relevant guardrails based on the current phase, file patterns, or tags. The system automatically selects active rules to serve as implementation checks, ensuring that lessons learned from previous debug cycles or user feedback are applied to current tasks. It is designed to be harness-agnostic, meaning any AI agent capable of reading and writing markdown can utilize the stored rules to improve build quality without being tied to a specific native memory system.
エージェントができること
- 1Apply context-aware guardrailsSelect specific implementation rules based on the files being modified or the technology tags involved.
skill の SKILL.md から作成されています。すべてのユースケースは、その引用と照合されています。
implementation-memory skillのインストール方法
各コマンドはskillフォルダをクライアントのskillsディレクトリにコピーします。読み込むには、クライアントを再起動するか新しいセッションを開始してください。プラグインにimplementation-memory skillをインストールする
/plugin marketplace add robisson/build-like-amazon-agent-skills /plugin install build-like-amazon@build-like-amazon
Claude Codeにimplementation-memory skillをインストールする
~/.claude/skills/implementation-memory/SKILL.md
$ npx degit robisson/build-like-amazon-agent-skills/skills/implementation-memory ~/.claude/skills/implementation-memoryClaude Code (project)にimplementation-memory skillをインストールする
.claude/skills/implementation-memory/SKILL.md
$ npx degit robisson/build-like-amazon-agent-skills/skills/implementation-memory .claude/skills/implementation-memoryCodexにimplementation-memory skillをインストールする
~/.agents/skills/implementation-memory/SKILL.md
$ npx degit robisson/build-like-amazon-agent-skills/skills/implementation-memory ~/.agents/skills/implementation-memoryGemini CLIにimplementation-memory skillをインストールする
~/.gemini/skills/implementation-memory/SKILL.md
$ npx degit robisson/build-like-amazon-agent-skills/skills/implementation-memory ~/.gemini/skills/implementation-memoryClaude.aiにimplementation-memory skillをインストールする
npx degit robisson/build-like-amazon-agent-skills/skills/implementation-memory implementation-memory && zip -r implementation-memory.zip implementation-memory # claude.ai → Customize → Skills → + → Create skill → Upload a skill → implementation-memory.zip
SKILL.md
GitHubで表示Implementation Memory
Overview
Implementation memory is a compact, fixed-size set of rules that improves future /build executions. It captures durable lessons from completed builds, code review feedback, test failures, and user feedback, then applies only the relevant lessons to later implementation work.
This is procedural memory, not history. It stores rules for how to implement better next time. It does not store product context, design history, changelog entries, ADRs, raw retrospectives, PR transcripts, or conversation logs.
This mechanism is harness-agnostic by design. It uses a plain markdown file in the repo (.bla/implementation-memory.md) intentionally. It is not tied to any agent's native memory system. Any AI agent that can read markdown and follow instructions can consume and update it.
This is an internal flow mechanism. Users do not invoke it as a slash command or choose it as a standalone workflow. Existing build commands and build-oriented assistant rules call it automatically at the defined points in the /build flow.
Capture Points
Implementation memory can be fed from multiple workflow stages — not only /build:
| Source | When | What to extract |
|---|---|---|
/wb (bar raiser gate) |
After a PR/FAQ or 5CQ bounces on the same bar-raiser question across features | The recurring gap in customer evidence or problem framing, stated as a rule for future Working Backwards work |
/design (design gate) |
After a requirement bounces at the design gate 3 or more times | The recurring reason the requirement keeps failing the gate, stated as a rule for future design work |
/spec (coherence review) |
After a coherence-review finding recurs across specs | The cross-spec inconsistency pattern that coherence review keeps catching |
/build (post-implementation review) |
After PASSED WITH FIXES NEEDED or user validation | Procedural lessons from fix tasks, debug cycles, review findings |
/review (code review) |
After review feedback is resolved | Recurring review findings that apply beyond one PR |
/learn (COE) |
After corrective actions are defined | Operational lessons that should influence future implementation |
All sources use the same Quality Memory Review process, admission checks, and rejection rules. Record in the rule's Phase field the phase whose work the rule constrains, so later selection scopes it correctly. For the first four sources that is the capturing phase itself — /wb → wb, /design → design, /spec → spec, /build → build — which is what makes every value the enum admits reachable: a value no source can write would be a filter hiding rules nobody can create. /review and /learn are capture points, not phases: a rule captured there inherits the Phase of the work it reviewed — a review finding about implementation is Phase: build, a COE action about operational practice is Phase: operate — because the Phase field names the phase whose work the rule governs, and there is no pre-execution selection at /review or /learn to scope. The enum is therefore unchanged: no review or learn value exists. Reachability on the write side is not enough on its own — a value every source can write but no command ever selects would hide rules just as effectively, from the read side, so Pre-Build Selection step 0 names which phases have a selection point and which are reserved, and a Phase value is only fully reachable once both sides hold.
Internal Flow Hooks
Use this mechanism in these places:
- Before
/buildtask execution: read the current spec/tasks first, then select active memory rules as defined in Pre-Build Selection below — a rule is selected if itsPhaseisbuildand ANY signal matches (Tags,File patterns, orApplies when). That section is the single definition of the selection semantics; this hook only says when it runs. - After implementation review (semi-automatic trigger): when the verdict is PASSED WITH FIXES NEEDED, the agent MUST automatically extract up to 2 candidate learnings from the fix findings and present them to the user for Accept / Reject / Edit. This is the primary memory population path. When the verdict is PASSED, prompt the user to test the delivered behavior and bring back failures or feedback.
- After user validation or explicit request: run a Quality Memory Review using implementation results, implementation review, test/debug feedback, and user feedback to decide whether memory should be updated.
- After
/reviewfindings are resolved: if the review surfaced recurring patterns (same finding across 2+ PRs or explicitly flagged as "this keeps happening"), extract candidates and present for Accept / Reject / Edit. - After
/learncorrective actions: if a COE produces an implementation-level corrective action (not an org/process action), extract a candidate and present for Accept / Reject / Edit. - After a requirement bounces at the
/designgate 3 or more times: extract a candidate withPhase: designdescribing why the requirement kept failing the gate, and present for Accept / Reject / Edit. Without this hook a requirement rejected three times leaves no trace. - After a coherence-review finding recurs across specs: when
/specproduces the same coherence finding in 2 or more specs, extract a candidate withPhase: specand present for Accept / Reject / Edit. - Periodic nudge: after 3 builds without a memory update (tracked via
Builds without updatecounter at the bottom of the memory file), include in the end-of-build summary: "You have had N builds without memory update. Would you like a quick Quality Memory Review?"
Do not use this skill to replace requirements, design documents, ADRs, release notes, PR/FAQ, postmortems, or review artifacts.
Canonical Artifact
The project-level memory artifact is:
.bla/implementation-memory.md
If the file does not exist before a build, continue without memory guardrails. After the build, create it only when at least one candidate learning passes the admission bar. A repository may also keep an empty canonical file with the required structure so future builds have a stable location.
Memory Limits
The memory is intentionally small:
- Maximum 12 active rules.
- Maximum 120 words per active rule.
- Maximum 2 candidate learnings extracted per Quality Memory Review.
- Rewrite the whole file when updating; never append a chronological build log.
- Prefer rules that prevent bugs, review rework, security issues, rollout failures, weak tests, or operational gaps.
Active Rule Format
Every active rule must use this shape:
### IM-XXX: [Short rule name]
Tags: [api, error-handling, testing, infra, ui, data-pipeline, security, observability, workflow, ...]
Phase: [wb | design | spec | build | deploy | operate]
File patterns: [optional glob patterns, e.g. src/api/**, tests/integration/**]
Applies when: [Spec/component/risk conditions where this rule is relevant.]
Rule: [Actionable implementation behavior.]
Avoid: [Specific behavior to avoid.]
Evidence: [Review feedback | user feedback | test failure | build defect | repeated pattern.]
Impact: [Critical | High | Medium]
Confidence: [Proven (Prevented >= 1 backed by evidence) | Established (applied successfully) | New (just added)]
Hit count: [N — number of builds where this rule was selected and applied]
Prevented: [N — number of times this rule demonstrably prevented an issue; increment only with concrete evidence that the rule stopped something]
Created: [YYYY-MM-DD]
Last used: [YYYY-MM-DD]
Builds on: [[IM-YYY]] (optional — reference to a related/prerequisite rule)
Use stable IDs. When removing a rule, do not renumber unrelated rules unless the file is being deliberately compacted for readability.
Prevented is an evidence counter, not a confidence signal. Increment it only when something concrete stopped: a validator blocked, a test failed before merge, or a review cited the rule by ID. Applying a rule, or believing it helped, is not evidence. Confidence: Proven therefore requires Prevented >= 1 backed by such evidence; a rule whose only evidence is unattributed feedback stays at Established with Prevented: 0.
Pre-Build Selection
Before implementation starts:
-
Determine the current phase from the command in flight:
/wb→wb,/design→design,/spec→spec,/build→build,/deploy→deploy,/operate→operate. This section runs at the start of every phase, not only/build. Three phases have a selection point wired into their command today:design(.claude/commands/design.md→ Step 0e),spec(.claude/commands/spec.md→ Read the existing context) andbuild(.claude/commands/build.md→ step 2c).wb,deployandoperateare reserved: a rule stored under one of them is admitted normally, counts against the 12-rule cap, and will not fire until a selection point exists in that command — so accept such a rule only when it is worth a slot it cannot yet use. -
Read the current
.bla/specs/<slice-name>/requirements.md,design.md,tasks.md, andcoherence-review.mdif present. -
Read
.bla/implementation-memory.mdif it exists. -
Select active rules using this multi-signal matching. A rule is selected when its
Phasematches the current phase determined in step 0 AND any one of the following signals matches:- Tags match: rule tags overlap with the current spec's domain/technology areas.
- File patterns match: the spec's tasks touch files matching the rule's glob patterns.
- Applies when matches: the LLM judges the prose description to be relevant to the current spec, task, component, dependency, or risk profile.
The three signals above remain an OR among themselves — one is enough.
Phaseis an additional filter layered on top, not a replacement: a rule whosePhasedoes not match the current phase is never selected, however strongly its tags, file patterns, or prose match. A rule with noPhaseline is treated asbuild. -
Convert selected rules into implementation guardrails, test checks, or review checks.
-
Ignore unmatched rules. They are not requirements for the current build.
-
Increment
Hit countfor each selected rule.
Phase scoping changes which rules are selected, never how many may exist: the cap defined in Memory Limits above is unchanged at 12 active rules in total, not 12 per phase.
Memory rules never override approved requirements, design, tasks, or coherence-review action items.
Semi-Automatic Trigger (Primary Population Path)
When the implementation review verdict is PASSED WITH FIXES NEEDED, the agent does not wait for the user to request memory update. Instead:
- Generate a structured self-reflection (2-3 sentences): "What went wrong? Why? What would have prevented it?"
- Use the self-reflection (not the raw findings) to extract up to 2 candidate learnings.
- Present candidates to the user in this format:
Memory candidates extracted from this build:
[1] IM-00X: [Short rule name]
Tags: [...]
Applies when: [...]
Rule: [...]
Avoid: [...]
[2] IM-00Y: [Short rule name]
Tags: [...]
Applies when: [...]
Rule: [...]
Avoid: [...]
Actions: [Accept all] [Accept 1 only] [Accept 2 only] [Edit before saving] [Reject all]
- Apply the user's decision. If accepted, run admission checks and write.
- If rejected, do not ask again for this build.
This ensures memory is populated even when users forget to ask for Quality Memory Review.
Post-Review User Validation Handoff
After implementation review is written (for PASSED verdicts without fix tasks), do not treat the model review as the final validation of product behavior. The final build response must explicitly hand the implementation to the user for real testing and invite a debug loop.
Use this shape:
Implementation is complete and implementation review has run. Please test the delivered behavior in the product. If anything is wrong, bring me the failure, error, or feedback and we will debug it together until it is OK. After you consider the implementation validated, ask me to run Quality Memory Review and I will capture only durable learnings worth keeping.
If no user validation/debug feedback is available yet, skip memory update and report: Implementation memory skipped: waiting for user validation/debug feedback and an explicit Quality Memory Review request.
Quality Memory Review
Run this after the user asks for it, confirms the implementation is validated, or when the semi-automatic trigger fires. Use implementation verification, implementation-review findings, user test results, debug fixes, and final user feedback as evidence:
- Self-reflection first — Before extracting candidates, generate a 2-3 sentence structured reflection: "What went wrong or almost went wrong? Why did it happen? What general rule would have prevented it?" This reflection is the input for extraction, not the raw findings.
- Extract at most 2 candidate learnings from the reflection.
- Reject any candidate that fails the rejection rules.
- Add or merge only candidates that pass at least 2 admission checks.
- Merge duplicates into existing active rules instead of adding near-copies.
- If the memory would exceed 12 active rules, prune weaker rules before writing.
- Rewrite the whole memory file if an update is warranted.
- Leave memory unchanged when no candidate meets the bar.
- Reset the
Builds without updatecounter to 0 when memory is updated.
The Quality Memory Review response must state whether implementation memory was updated, unchanged, or skipped. When it changes:
- Summarize the rule IDs added, merged, or removed.
- Show the diff (what was added/changed/removed) directly in the response so the user sees changes without opening the file.
When it is skipped, state why.
Admission Checks
A candidate learning must pass at least 2 of these checks:
- Avoids a likely future bug.
- Avoids repeated review rework.
- Improves tests, security, operations, or rollout safety.
- Applies beyond one feature.
- Corrects a recurring agent tendency.
A defect that recurs even though a memory rule already covers it means memory is the wrong remedy: promote it to a declared project pattern or a mechanism via skills/mechanism-creation/SKILL.md, and do not add a second memory rule for the same defect.
Rejection Rules
Reject candidates that are:
- Product requirements.
- Feature-specific facts.
- Architecture decisions or ADR content.
- Release notes or changelog entries.
- Raw retrospectives, raw review transcripts, or raw user quotes.
- Secrets, credentials, customer data, private incident details, or proprietary feedback.
- Environment-specific operational facts that will become stale.
- Stylistic preferences without quality impact.
Staleness and Decay
Rules decay over time. The following thresholds guide pruning:
- Stale threshold: a rule not selected (Last used not updated) for >90 days is a candidate for pruning.
- Inactive threshold: a rule not selected in 5 consecutive Quality Memory Reviews is a candidate for pruning.
- Low-confidence, low-hit: a rule with Confidence: New and Hit count: 0 after 3 builds is a candidate for pruning.
Staleness alone does not trigger automatic removal. The agent flags stale rules during Quality Memory Review and asks the user: "Rule IM-XXX has not been used in N days. Keep or remove?"
Merge, Conflict, and Pruning Rules
When a candidate overlaps an existing rule, merge it into the existing rule and update Evidence, Impact, Confidence, Hit count, or Last used if warranted.
When rules conflict, keep the more specific and higher-impact rule. If the conflict is ambiguous, leave memory unchanged and report the conflict in the final response.
When pruning is required, remove in this order:
- Rules that exceed the stale threshold (>90 days unused).
- Rules that are too specific to one feature.
- Rules duplicated by requirements, design, ADRs, or repository docs.
- Rules with Confidence: New and Hit count: 0.
- Low-impact or mostly stylistic rules.
- Rules superseded by a stronger rule.
Rule Composition
Rules may reference other rules using the Builds on: [[IM-YYY]] field. This indicates:
- The referenced rule should also be selected when the referencing rule is selected.
- Together they form a composite pattern that captures a more complex lesson without exceeding the 120-word limit per rule.
- When pruning, if a rule that others build on is removed, check whether dependent rules still make sense alone.
Domain-Scoped Memory (for large projects)
For projects with distinct domains (e.g., monorepos), the memory may be split:
.bla/implementation-memory.md # global (max 12 rules)
.bla/implementation-memory-<domain>.md # domain-scoped (max 6 rules each)
Pre-build selection loads the global file plus the domain file matching the current spec's primary domain. Domain files follow the same format and rules but with a reduced cap of 6 rules.
When to split: only when the global memory is consistently full (12 rules) AND rules from different domains are competing for slots. Do not split preemptively.
Manual Scenarios
| Scenario | Expected behavior |
|---|---|
| No memory file exists | Build proceeds; Quality Memory Review may create memory if strong candidates exist. |
| Memory has 12 rules and 2 strong candidates | Merge or remove weaker rules; final memory still has at most 12 rules. |
| Candidate is a product requirement | Reject candidate. |
| Candidate duplicates an existing rule | Merge/refine existing rule instead of duplicating. |
| Current spec matches no active rules | Select no memory guardrails. |
| Review/user feedback is unavailable (PASSED verdict) | Skip memory update and ask the user to test/debug before requesting Quality Memory Review. |
| PASSED WITH FIXES NEEDED verdict | Semi-automatic trigger fires: extract candidates, present to user for Accept/Reject/Edit. |
| User validates after debug and asks for Quality Memory Review | Extract up to 2 durable learnings from the full implementation/review/test/debug cycle. |
| 3 builds without memory update | Nudge in end-of-build summary. |
| Rule IM-003 not used in 90+ days | Flag during next Quality Memory Review; ask user to keep or remove. |
/review finds recurring pattern |
Extract candidate and present for Accept/Reject/Edit. |
/learn COE has implementation-level action |
Extract candidate and present for Accept/Reject/Edit. |
このスキルのファイル
1implementation-memory skillに関する質問
Claude Codeにimplementation-memory skillをインストールするには
npx degit robisson/build-like-amazon-agent-skills/skills/implementation-memory ~/.claude/skills/implementation-memoryを実行してください。Claude Codeは~/.claude/skills(すべてのプロジェクト)または.claude/skills(単一プロジェクト)からskillsを読み込み、説明がタスクに一致する場合にskillを使用します。
implementation-memory skillはどのクライアントで使用できますか
Agent Skills形式を読み込むすべてのクライアントで使用できます: Claude Code、Codex、Gemini CLI、claude.ai(ZIPとしてアップロード)。skill内のスクリプトは、クライアントがコード実行を許可した場合にのみ実行されます。
What is implementation memory?
It is a compact, fixed-size set of rules that captures durable lessons from completed builds, code reviews, and test failures to improve future work.
How is the memory stored and accessed?
The memory is stored in a plain markdown file located at .bla/implementation-memory.md within the repository, making it accessible to any AI agent that can read markdown.
What are the limits on the number of rules?
The memory is intentionally small, allowing for a maximum of 12 active rules with a maximum of 120 words per rule.