ctx-decision-add

Record architectural decision. Use when a trade-off is resolved or a non-obvious design choice is made that future sessions need to know.

41 stars

Best use case

ctx-decision-add is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Record architectural decision. Use when a trade-off is resolved or a non-obvious design choice is made that future sessions need to know.

Teams using ctx-decision-add should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ctx-decision-add/SKILL.md --create-dirs "https://raw.githubusercontent.com/ActiveMemory/ctx/main/internal/assets/claude/skills/ctx-decision-add/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ctx-decision-add/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ctx-decision-add Compares

Feature / Agentctx-decision-addStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Record architectural decision. Use when a trade-off is resolved or a non-obvious design choice is made that future sessions need to know.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

Record 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:

1. **Context**: What situation prompted this decision? What constraints exist?
2. **Alternatives**: What options were considered? (At least 2)
3. **Decision**: What was chosen?
4. **Rationale**: Why this choice over the alternatives?
5. **Consequence**: What changes as a result? (Both positive and negative)

## Gathering Information

If the user provides only a title, ask:

1. "What prompted this decision?" → Context
2. "What alternatives did you consider?" → Options
3. "Why this choice over the alternatives?" → Rationale
4. "What are the consequences (good and bad)?" → Consequence

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

Provenance flags (`--session-id`, `--branch`, `--commit`) are **required**.
Get these values from the hook-relayed provenance line in your context
(e.g., `Session: abc12345 | Branch: main @ 68fbc00a`).

**Prefer this skill over raw `ctx add decision`**: the conversational
approach lets you automatically pick up session ID, branch, and commit
from the provenance line already in your context window.

**Quick format:**
```bash
ctx add decision "Use Cobra for CLI framework" \
  --session-id abc12345 --branch main --commit 68fbc00a \
  --context "Need CLI framework for Go project" \
  --rationale "Better subcommand support than urfave/cli, team familiarity" \
  --consequence "More boilerplate, but clearer command structure"
```

**Full format with alternatives:**
```bash
ctx add decision "Use PostgreSQL for primary database" \
  --session-id abc12345 --branch main --commit 68fbc00a \
  --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)." \
  --consequence "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
- [ ] Consequence includes both benefits and trade-offs

Related Skills

ctx-add-decision

41
from ActiveMemory/ctx

Record architectural decision. Use when a trade-off is resolved or a non-obvious design choice is made that future sessions need to know.

ctx-verify

41
from ActiveMemory/ctx

Verify before claiming completion. Use before saying work is done, tests pass, or builds succeed.

ctx-skill-creator

41
from ActiveMemory/ctx

Create, improve, test, and deploy skills. Full skill lifecycle from intent to working skill file.

ctx-sanitize-permissions

41
from ActiveMemory/ctx

Audit tool permissions for dangerous or overly broad entries. Use to ensure safe agent configuration.

ctx-recall

41
from ActiveMemory/ctx

Browse session history. Use when referencing past discussions or finding context from previous work.

ctx-prompt

41
from ActiveMemory/ctx

Apply, list, and manage saved prompt templates from .context/prompts/. Use when the user asks to apply, list, or create a reusable template like code-review or refactor.

ctx-journal-normalize

41
from ActiveMemory/ctx

Normalize journal source markdown for clean rendering. Use after journal site shows rendering issues: fence nesting, metadata formatting, broken lists.

ctx-import-plans

41
from ActiveMemory/ctx

Import plan files into project specs directory. Use to convert external plans into project-tracked specs.

ctx-compact

41
from ActiveMemory/ctx

Archive completed tasks and trim context. Use when context files are growing large.

ctx-check-links

41
from ActiveMemory/ctx

Audit docs for dead links. Use before releases, after restructuring docs, or when running a documentation audit.

ctx-add-task

41
from ActiveMemory/ctx

Add a task. Use when follow-up work is identified or when breaking down complex work into subtasks.

ctx-add-learning

41
from ActiveMemory/ctx

Record a learning. Use when discovering gotchas, bugs, or unexpected behavior that future sessions should know about.