Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
404 changes: 404 additions & 0 deletions .decapod/OVERRIDE.md

Large diffs are not rendered by default.

77 changes: 77 additions & 0 deletions .decapod/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# .decapod - Decapod Control Plane

Decapod is the daemonless, local-first governance kernel behind AI coding agents. Agents call it on demand to turn intent into context, then context into explicit specifications before inference, enforce boundaries, and deliver proof-backed completion across concurrent multi-agent work.

GitHub: https://github.com/DecapodLabs/decapod
Canonical Contract: `assets/constitution.json` section `core/DECAPOD`

## What This Directory Is

This `.decapod/` directory is the local control plane for this repository.
It keeps Decapod-owned state, generated artifacts, and isolated workspaces separate from your product source tree.

`OVERRIDE.md` and `README.md` intentionally stay at this top level.

## Quick Start

1. `decapod init --proof`
2. `decapod validate`
3. `decapod constitution get core/DECAPOD`
4. `decapod session acquire`
5. `decapod rpc --op agent.init`
6. `decapod workspace status`
7. `decapod todo add \"<task>\" && decapod todo claim --id <task-id>`
8. `decapod workspace ensure`

## Migrating Custom Agent Files

If you have existing files like `SOUL.md` or `MEMORY.md` that were used for agent instructions, you can migrate them into the Decapod governance layer.

After running `decapod init`, simply ask your agent to **"consolidate my [FILE.md] content into the .decapod/OVERRIDE.md substrate"**. This ensures your project-specific intent is merged into the correct constitutional sections while allowing Decapod to manage the primary entrypoints.

## Aptitude Memory

Decapod aptitude remains for preferences and behavior recall:

```bash
# Record a preference
decapod data aptitude add --category git --key branch_prefix --value "feature/" --confidence 90

# Get contextual prompts
decapod data aptitude prompt --query "commit"

# Record an observation
decapod data aptitude observe --category code_style --content "Team prefers async/await over tokio::spawn"
```

## Canonical Layout

- `README.md`: operator onboarding and control-plane map.
- `OVERRIDE.md`: project-local override layer for embedded constitution directives.
- `data/`: canonical control-plane state (SQLite + ledgers).
- `generated/specs/`: living project specs scaffolded by `decapod init`.
- `generated/context/`: deterministic context capsule artifacts.
- `generated/artifacts/provenance/`: promotion manifests and convergence checklist.
- `generated/artifacts/inventory/`: deterministic release inventory artifacts.
- `generated/artifacts/diagnostics/`: opt-in diagnostics artifacts.
- `workspaces/`: isolated todo-scoped git worktrees for implementation.

## How It Works

Decapod uses a **JSON-based constitution** to govern agent behavior. Instead of the agent reading full Markdown documents, it uses the Decapod CLI to query specific directives.

1. **Indexing**: Decapod indexes the constitution graph when called.
2. **Selective Context**: Agents query exact sections (directives) needed for the current task, minimizing context overhead.
3. **Local Overrides**: You can override any constitution directive in [.decapod/OVERRIDE.md](OVERRIDE.md) using the specific directive ID.

## Why Teams Use This

- Agent-first interface with explicit governance.
- Local-first execution without daemon overhead.
- Integrated TODO, claims, context, validation, and proof in one harness.
- Cleaner repos: Decapod concerns stay in `.decapod/`.

## Override Workflow

Edit `.decapod/OVERRIDE.md` to add project-specific policy overlays without forking Decapod.
Keep overrides minimal, explicit, and committed.
34 changes: 34 additions & 0 deletions .decapod/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
schema_version = "1.0.0"

[init]
specs = true
ci = true
diagram_style = "mermaid"
entrypoints = [
"AGENTS.md",
"CLAUDE.md",
"GEMINI.md",
"CODEX.md",
]

[repo]
product_name = "amnion"
product_summary = "UI/UX layer. The soft place where intent becomes visible. The terminal cockpit, workspace, conversation surface, intent browser, status view, and human interaction layer."
architecture_direction = "cli"
product_type = "service_or_library"
done_criteria = "Done means Amnion provides a soft, terminal-native Rust TUI where a human can move between governed intents, see each intent’s calm custody state at a glance, and drill into details only when needed: active agent/session, claimed todos, current worktree, touched files, Decapod validation state, approvals, blockers, proof artifacts, handoff summary, and recent meaningful activity. Amnion must not run the agent loop itself; it renders and controls Pincher-managed execution while treating Decapod as the source of governance truth. The default experience should be quiet and confidence-oriented, with minimal log noise, explicit human-attention states, and adjustable verbosity for deeper event streams, raw logs, validation failures, and proof inspection."
base_branch = "main"
primary_languages = ["Rust"]
detected_surfaces = [
"cargo",
"cli",
"rust",
]
external_tracker = false
container_workspaces = true
mode = "local"
declared_capabilities = [
"event-driven",
"persistent-state",
"public-api",
]
32 changes: 32 additions & 0 deletions .decapod/generated/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Generated by decapod container profile
# Path: .decapod/generated/Dockerfile
# Managed seed: Decapod maintains the image/version header; agents may
# mutate project-specific packages and commands in workspace branches.
ARG DECAPOD_IMAGE=ghcr.io/decapodlabs/decapod:v0.72.16
FROM $DECAPOD_IMAGE
ARG DECAPOD_VERSION=0.72.16
ARG DECAPOD_WORKSPACE_PATH=unknown
ARG DECAPOD_USE_LOCAL_BINARY=0
LABEL org.opencontainers.image.base.name="$DECAPOD_IMAGE"
LABEL org.opencontainers.image.source="https://github.com/DecapodLabs/decapod"
LABEL org.decapod.managed="workspace"
LABEL org.decapod.workspace.path="$DECAPOD_WORKSPACE_PATH"
LABEL org.decapod.version="$DECAPOD_VERSION"
RUN if command -v apk >/dev/null 2>&1; then \
apk add --no-cache bash ca-certificates coreutils curl git openssh-client sqlite-libs; \
elif command -v apt-get >/dev/null 2>&1; then \
apt-get update && \
apt-get install -y --no-install-recommends bash ca-certificates coreutils curl git libsqlite3-0 openssh-client && \
rm -rf /var/lib/apt/lists/*; \
else \
echo "No supported package manager found" >&2; exit 1; \
fi
RUN update-ca-certificates
COPY .decapod/generated/decapod /usr/local/bin/decapod.local
RUN chmod 0755 /usr/local/bin/decapod.local && \
if [ "$DECAPOD_USE_LOCAL_BINARY" = "1" ]; then \
cp /usr/local/bin/decapod.local /usr/local/bin/decapod; \
fi
RUN if [ "$DECAPOD_USE_LOCAL_BINARY" != "1" ]; then \
/usr/local/bin/decapod --help >/dev/null; \
fi
41 changes: 41 additions & 0 deletions .decapod/generated/policy/context_capsule_policy.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"schema_version": "1.0.0",
"policy_version": "jit-capsule-policy-v1",
"repo_revision_binding": "HEAD",
"default_risk_tier": "medium",
"tiers": {
"critical": {
"allowed_scopes": [
"core",
"interfaces",
"plugins"
],
"max_limit": 20,
"allow_write": true
},
"high": {
"allowed_scopes": [
"core",
"interfaces",
"plugins"
],
"max_limit": 12,
"allow_write": true
},
"low": {
"allowed_scopes": [
"interfaces"
],
"max_limit": 4,
"allow_write": false
},
"medium": {
"allowed_scopes": [
"core",
"interfaces"
],
"max_limit": 6,
"allow_write": true
}
}
}
91 changes: 91 additions & 0 deletions .decapod/generated/specs/.manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
{
"schema_version": "1.1.0",
"template_version": "scaffold-v3",
"generated_at": "1784668909Z",
"repo_signal_fingerprint": "cbb46fea4ed69a2e244419b99c731f321e0d22223264c74afc034828705c58f2",
"declared_capabilities": [
"event-driven",
"persistent-state",
"public-api"
],
"capability_definition_version": "1.0.0",
"config_input_hash": "96631f9f3b3bac9cea573b0c754a44582fffe17492c380e24d041c9f03940868",
"spec_input_hash": "215a9e49cbd8e968c79caddc9f6f92d4e4c0998414f693e25ee6ed9c9269b71f",
"decapod_release": "0.72.16",
"entrypoints": [
{
"path": "AGENTS.md",
"template_hash": "48fbaa679b3ef6ca712491441e2165ac7a06c279ffd0442ba82bfe8e24c20806",
"content_hash": "48fbaa679b3ef6ca712491441e2165ac7a06c279ffd0442ba82bfe8e24c20806",
"fingerprint": "5cda5f37f8f0861d4da34116f0977e2568c52a09adeb649e80511408f24f8827"
},
{
"path": "CLAUDE.md",
"template_hash": "1a6e8834b3d1fa75f62cba14f7702db9c716faee63e590833116b96ecb1b0fc2",
"content_hash": "1a6e8834b3d1fa75f62cba14f7702db9c716faee63e590833116b96ecb1b0fc2",
"fingerprint": "1f983c24666a1f41d84a5e5ea3f8b5941981752411ec8fd22dddafbf5b95394e"
},
{
"path": "GEMINI.md",
"template_hash": "6a2dde574607f3a59e92f8f8ba2cda53340ed9c0a69cf41d63646a3bf440b72f",
"content_hash": "6a2dde574607f3a59e92f8f8ba2cda53340ed9c0a69cf41d63646a3bf440b72f",
"fingerprint": "a952a85e11180bbdd9192521932ebf41289187f7a69b17ba5cdb0d33819f3606"
},
{
"path": "CODEX.md",
"template_hash": "d133490547ab2fa67e300fdb75dd34b3637505815032e1f9345d703280e581e8",
"content_hash": "d133490547ab2fa67e300fdb75dd34b3637505815032e1f9345d703280e581e8",
"fingerprint": "4b73d322dddc92be7fd6035430abc84924081bf0de751ecbe76bc3bc5b73b26c"
}
],
"files": [
{
"path": ".decapod/generated/specs/README.md",
"template_hash": "7a85d851e4e267dd9eec6ae0dee0417fd6ff3dbca435bc92c6e9aa7c26487813",
"content_hash": "db516bf478b294651a96f71a5a0908b851801b4f3d6098a95196575660cd991a",
"fingerprint": ""
},
{
"path": ".decapod/generated/specs/INTENT.md",
"template_hash": "e6c06430e23ca87ae33169a6b1f9c70a3fd283655f5b5b29755fb83181f989e9",
"content_hash": "6597a944c6d55db413a9148443548d0c8221cd3fa035780d8a6c19161af2844a",
"fingerprint": ""
},
{
"path": ".decapod/generated/specs/ARCHITECTURE.md",
"template_hash": "f81224214db72e367670029174b0b69cf21ea2240d14ba936257324f2a9449d7",
"content_hash": "2de2ce8770b2a60c38c2657a0118d117c5027ff07ccd04c054bbe2e7878bab2c",
"fingerprint": ""
},
{
"path": ".decapod/generated/specs/INTERFACES.md",
"template_hash": "15cc8c3bbfe951da695384106eb78a44c7af28ddc002bcc83c8a7770229fe999",
"content_hash": "676247f5265f81536cffefa1566b36e9501a7aee93eaa8920cb61716f4eb81e3",
"fingerprint": ""
},
{
"path": ".decapod/generated/specs/VALIDATION.md",
"template_hash": "66c5f8821df14298ff57951351980899465cce41a3e4de98c3893c00116e51fb",
"content_hash": "e664397b1ae949a03921e9630d37ff539d2066ff3e5795c5a322849c8504de04",
"fingerprint": ""
},
{
"path": ".decapod/generated/specs/SEMANTICS.md",
"template_hash": "3a79850c94b81e29c6462a7ea70d45198252e3eeba2132c6e9206f7b4e4a5829",
"content_hash": "8088d77cf28f1c96bcbc62b393e0266972dcac3bc211bd3bd972b4deca62c958",
"fingerprint": ""
},
{
"path": ".decapod/generated/specs/OPERATIONS.md",
"template_hash": "54ab819ae22bea9f786793a37196749cbacd72c60f58108898e9db044c534acf",
"content_hash": "8d016e46667a577d2c7a290c26882c39acbae0bcdd3926ce905241c56506afe1",
"fingerprint": ""
},
{
"path": ".decapod/generated/specs/SECURITY.md",
"template_hash": "b283bdc62b7c2fce411becf6b31928d1b3502da28be7ad618531e3e1820fc147",
"content_hash": "870536db4bb02c598be95693bc08681b7bbb4b0b7f6ba8490e57173167d8055d",
"fingerprint": ""
}
]
}
Loading
Loading