From tdk-retro
Review learning-delta.md entries with the user, apply approved technical edits, delegate approved memory edits to tdk-memory-update, and update entry statuses.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tdk-retro:tdk-retro-applyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
If a target file changed since proposal, read the current file and regenerate the preview before asking for approval. If an approved entry fails to apply, mark it `blocked` with the exact reason.
If a target file changed since proposal, read the current file and regenerate the preview before asking for approval. If an approved entry fails to apply, mark it blocked with the exact reason.
Apply only user-approved learning deltas. Technical targets are edited directly. Memory targets are delegated to /tdk-memory-update; never edit .specify/memory/ directly.
../_shared/learning-delta-schema.md../_shared/script-command-contract.mdreferences/apply-flow-technical.mdreferences/apply-flow-memory.mdreferences/memory-delegate-contract.mdParse $ARGUMENTS as TASK_ID.
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-${GITHUB_WORKSPACE:-$(git rev-parse --show-toplevel 2>/dev/null)}}"
if [ -z "$PROJECT_DIR" ]; then
echo "Cannot resolve project root. Run from a git workspace or set CLAUDE_PROJECT_DIR/GITHUB_WORKSPACE."
exit 1
fi
(cd "$PROJECT_DIR/.specify/scripts/ts" && bun src/commands/util/check-prerequisites.ts {task_id} --paths-only --json)
Store FEATURE_DIR from the JSON output.
Fixture fallback: if path resolution fails and $PROJECT_DIR/.specify/examples/specs/{TASK_ID}/ exists, use that path as FEATURE_DIR. Do not require plan.md; this skill only requires learning-delta.md.
Read {FEATURE_DIR}/learning-delta.md. If missing, stop and ask the user to run /tdk-retro-propose {TASK_ID} first.
Process entries with status: proposed or status: approved. Skip rejected, blocked, and applied.
For each pending entry:
Approve - apply this entry.Reject - mark rejected.Skip - leave proposed.Show target path, operation, rationale, and evidence in the prompt.
Follow references/apply-flow-technical.md.
Allowed target types:
Use Read/Edit/Write on the target path. Create a new file only when the operation explicitly says add and the path is inside an allowed project documentation, rule, config, or skill directory.
After success, update the entry status to applied.
Follow references/apply-flow-memory.md and references/memory-delegate-contract.md.
For K1/K2 entries, invoke /tdk-memory-update with natural language that includes the domain and content:
In domain {domain}, {content}
If memory is not initialized or the domain is unknown, mark the entry blocked and explain which /tdk-memory-init action is needed.
After each entry, update the entry status in {FEATURE_DIR}/learning-delta.md:
appliedrejectedblockedproposed when skippedReport:
feat(retro): apply learnings from {TASK_ID}Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
npx claudepluginhub vinhltt/tdk --plugin tdk-retro