Invisible decision capture for fraim projects. Decisions are captured as you talk — the person never needs to know the system exists.
The person talks naturally. The plugin runs two loops:
Main Loop (every turn): The main agent checks for conflicts with existing decisions, processes inbox messages from background agents, and spawns background work when the person says something substantive.
Background Agent (on demand, haiku): A lightweight agent that either maintains the decision graph (capturing new decisions, detecting contradictions) or synthesizes information across the graph. Communicates findings back through an inbox.
The person never sees decision IDs, levels, states, or any internal machinery. They just have a design conversation.
.claude-plugin/
plugin.json Plugin metadata (v2.0.0)
marketplace.json Marketplace definition (fraim-plugins)
agents/
dna-agent.md Background agent: maintain + analyze modes
hooks/
hooks.json Hook configuration (SessionStart, PreToolUse, PostToolUse)
scripts/
session-start.sh SessionStart: auto-bootstrap, behavior rules, briefing
protect-contracts.sh PreToolUse: block contract edits, warn on governance files
validate-frontmatter.sh PreToolUse: validate decision frontmatter
post-edit-validate.sh PostToolUse: advisory validation after edits
skills/
compile/SKILL.md Compile decisions to contracts (explicit only)
tools/
dna-graph.py CLI: 15 commands for graph operations
format.md Decision format specification
claude --plugin-dir ~/Desktop/fraim-toolkit
/plugin marketplace add <marketplace-url>
/plugin install dna@fraim-plugins
| Command | Purpose |
|---|---|
validate | Check frontmatter, graph topology, and body content |
cascade NODE [--reverse] | Propagation preview (downstream or upstream) |
index | Regenerate INDEX.md per directory |
health | Regenerate HEALTH.md + summary |
search TERM [...] | Search decisions by title and body content |
frontier | Compute the decision frontier |
check "keywords" | Fast scope/conflict check (committed only) |
progress | Mechanical counts for progress reporting |
| Command | Purpose |
|---|---|
create DEC-NNN | Create a new decision |
set DEC-NNN field value | Update frontmatter field |
edit DEC-NNN "old" "new" | Replace body text with delta reporting |
compile-manifest | Deterministic skeleton for contracts |
bootstrap | Auto-scaffold project structure |
| Command | Purpose |
|---|---|
inbox add | Add a message (background → main agent) |
inbox list [--undelivered] | List messages |
inbox deliver MSG-NNN | Mark messages as delivered |
inbox clear [--delivered|--all] | Clear messages |
| Command | Purpose |
|---|---|
scratchpad add | Add pre-decision entry |
scratchpad list | List entries |
scratchpad mature SP-NNN DEC-NNN | Graduate entry to decision |
scratchpad-summary | One-line summary of active entries |
| Mode | Triggered By | Actions |
|---|---|---|
| Maintain | Opinions, decisions, preferences | Create decisions (always suggested), enrich existing, scratchpad, detect conflicts |
| Analyze | Questions needing synthesis, gap detection | Search across graph, synthesize relationships, identify gaps |
Both modes report findings via the inbox. The main agent weaves them into subsequent responses.
.dna/config.json at project root (auto-created by bootstrap)dna/ and/or constitution/ directoriescontracts/ directory for compiled outputFresh projects are auto-bootstrapped on first session start.
.dna/config.json controls project-specific linting:
{
"project": {
"name": "MyProject"
},
"terminology": {
"flagged_term": "user",
"replacement": "person",
"exemptions": ["\"user\"", "`user`"],
"exempt_ids": ["DEC-005"]
},
"deleted_artifacts": [
{"pattern": "\\bOLD_FILE\\.md\\b", "label": "OLD_FILE.md (archived)"}
]
}
All config sections are optional. Core graph operations always work without configuration.
Modifies files
Hook triggers on file write and edit operations
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub fraim-ai/fraim-toolkit --plugin dnaPersonal advisory council system for life and business decisions. Simulates a Board of Advisors with four pillar councils (Intelligence, Business, Life, Security), persistent decision tracking in SQLite, outcome learning, and pattern analysis.
Convene parallel role-specialized peer agents (dynamic roster, plan card first) to debate a cross-domain decision or audit a codebase in real time. Invoking Claude acts as CEO: convenes, routes peer-DMs, arbitrates deadlocks, writes a one-page decision log.
Surface potential gaps at decision points — /gap (συνείδησις: knowing-together)
Collaborative technical discussion with proactive requirements gathering
Personal decision-making and life workflow support
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.