Awesome-omni-skill ctx-add-decision
Record architectural decision. Use when a trade-off is resolved or a non-obvious design choice is made that future sessions need to know.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/devops/ctx-add-decision" ~/.claude/skills/diegosouzapw-awesome-omni-skill-ctx-add-decision && rm -rf "$T"
skills/devops/ctx-add-decision/SKILL.mdRecord an architectural decision in DECISIONS.md.
When to Use
- After resolving a trade-off between alternatives
- When making a non-obvious design choice
- When the "why" behind a choice needs to be preserved
- When future sessions need to understand why something is the way it is
When NOT to Use
- Minor implementation details (use code comments instead)
- Routine maintenance or bug fixes
- Configuration changes that don't affect architecture
- When there was no real alternative to consider
Decision Formats
Quick Format (Y-Statement)
For lightweight decisions, use a single statement:
"In the context of [situation], facing [constraint], we decided for [choice] and against [alternatives], to achieve [benefit], accepting that [trade-off]."
Example:
"In the context of needing a CLI framework, facing Go ecosystem options, we decided for Cobra and against urfave/cli, to achieve better subcommand support, accepting that it has more boilerplate."
Full Format
For significant decisions, gather:
- Context: What situation prompted this decision? What constraints exist?
- Alternatives: What options were considered? (At least 2)
- Decision: What was chosen?
- Rationale: Why this choice over the alternatives?
- Consequences: What changes as a result? (Both positive and negative)
Gathering Information
If the user provides only a title, ask:
- "What prompted this decision?" → Context
- "What alternatives did you consider?" → Options
- "Why this choice over the alternatives?" → Rationale
- "What are the consequences (good and bad)?" → Consequences
For quick decisions, offer the Y-statement format instead.
Cross-Referencing
When a decision supersedes an earlier one:
- Mark the old decision as "Superseded by [new decision]"
- Reference the old decision in the new one
- Capture lessons learned from the original decision
When decisions are related:
- Note "See also: [related decision]" in consequences
Execution
Quick format:
ctx add decision "Use Cobra for CLI framework" \ --context "Need CLI framework for Go project" \ --rationale "Better subcommand support than urfave/cli, team familiarity" \ --consequences "More boilerplate, but clearer command structure"
Full format with alternatives:
ctx add decision "Use PostgreSQL for primary database" \ --context "Need ACID-compliant database for e-commerce transactions" \ --rationale "PostgreSQL offers JSONB, full-text search, and team has experience. Chose over MySQL (weaker JSON) and MongoDB (no multi-doc ACID)." \ --consequences "Single database handles transactions and search. Team needs PostgreSQL-specific training."
Quality Checklist
Before recording, verify:
- Context explains the problem clearly
- At least one alternative was considered
- Rationale addresses why alternatives were rejected
- Consequences include both benefits and trade-offs