Decision-Linked Development (DLD) — a workflow for recording, linking, and maintaining development decisions alongside code. Skills for planning, recording, implementing, auditing, and documenting decisions via @decision annotations.
55
69%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
You are helping the developer adjust one or more existing decision records. Your job is to apply their requested changes accurately and minimally.
Use the AskUserQuestion tool for all questions and prompts. This provides a structured input experience for the user.
Shared scripts:
../dld-common/scripts/update-status.sh
../dld-common/scripts/regenerate-index.shCheck that dld.config.yaml exists at the repo root. If not, tell the user to run /dld-init first and stop.
This skill is typically invoked mid-session after /dld-plan, /dld-decide, or during /dld-implement, so the project context and decision content are likely already in your conversation context. Only read these if you don't already have the information:
dld.config.yaml — project structure (flat vs namespaced, decisions directory)DL-*.md) live in the records/ subdirectory under the decisions directoryThe user may specify decision IDs explicitly (e.g., /dld-adjust DL-005), but often they won't — this skill is typically used right after /dld-plan, /dld-decide, or during /dld-implement, so the decisions are already part of the current conversation context.
AskUserQuestion.Find and read each decision file. If a decision ID is not found, report the error and continue with any remaining valid IDs.
For each decision, check whether editing requires user confirmation:
status: proposed)Edit freely. No confirmation needed — proposed decisions are mutable by convention.
status: accepted)Check if the decision file has been committed and pushed to the remote:
# Get the last commit hash for the decision file
LAST_COMMIT=$(git log --format=%H -1 -- <path-to-decision-file>)
# Check if that commit exists on any remote branch
git branch -r --contains "$LAST_COMMIT" 2>/dev/nullAskUserQuestion to present options:
/dld-decide that supersedes this oneIf the user chooses to supersede, direct them to /dld-decide and stop. If they cancel, stop. Only proceed with editing if they explicitly choose to edit anyway.
These are historical records. Ask for confirmation before editing — modifying historical decisions is unusual.
If the user provided the adjustment alongside the skill invocation (e.g., /dld-adjust DL-005 remove the mention of Java records), use that directly.
Otherwise, ask what changes they want to make.
Read the current decision content so you understand the full context of what you are working with.
AI agents consistently misinterpret adjustment requests. Follow these rules exactly:
"Remove X" means DELETE the content about X. Do NOT replace it with "We decided not to use X" or "We chose against X" or any other negative phrasing. Simply remove the sentences, bullet points, or paragraphs that mention X. The goal is a clean decision record that reads as if X was never discussed.
"Change X to Y" means REPLACE the content. Find where X is described and replace it with Y. Do not add explanatory text about the change.
"Add X" means INSERT new content. Add the new content in the appropriate section. Do not add meta-commentary about it being an addition.
General principle: The decision record should always read as a clean, coherent document. Never add editorial notes like "Updated on...", "Previously we...", "This was changed from...", or "We decided against...". The record captures the current state of the decision, not a changelog of edits.
Examples of WRONG vs RIGHT:
User says: "Remove the mention of Java records from DL-005"
User says: "Change the retry count from 3 to 5"
User says: "Remove the part about caching"
If multiple decisions are being adjusted, process them one at a time.
If any decision titles or metadata changed:
bash ../dld-common/scripts/regenerate-index.shAdjusted DL-NNN: [brief description of what changed]
Next steps:
/dld-lookup DL-NNN— review the updated decision/dld-implement DL-NNN— implement if the decision is proposed/dld-snapshot— regenerate overview docs to reflect the update