diff --git a/.decapod/OVERRIDE.md b/.decapod/OVERRIDE.md index 60481b2..302ce34 100644 --- a/.decapod/OVERRIDE.md +++ b/.decapod/OVERRIDE.md @@ -368,3 +368,20 @@ over the embedded JSON constitution. ### metadata/skills/INTENT_REFINEMENT --- +### core/SCAFFOLDING +### methodology/EXECUTIVE_ALIGNMENT +### methodology/MARKET_INTELLIGENCE +### methodology/OPERATING_MODEL_EXECUTION +### methodology/STRATEGIC_DECISION +### methodology/STRATEGY_DIAGNOSIS +### methodology/STRATEGY_ECONOMICS +### methodology/VALUE_RISK_GOVERNANCE +### architecture/GO +### architecture/JAVA +### architecture/JAVASCRIPT +### architecture/PYTHON +### architecture/REACT +### architecture/RUBY +### architecture/RUST +### architecture/TERRAFORM +### data/POSTGRESQL diff --git a/.decapod/generated/Dockerfile b/.decapod/generated/Dockerfile index 475d49b..ba71011 100644 --- a/.decapod/generated/Dockerfile +++ b/.decapod/generated/Dockerfile @@ -2,9 +2,9 @@ # 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.63.4 +ARG DECAPOD_IMAGE=ghcr.io/decapodlabs/decapod:v0.64.0 FROM $DECAPOD_IMAGE -ARG DECAPOD_VERSION=0.63.4 +ARG DECAPOD_VERSION=0.64.0 ARG DECAPOD_USE_LOCAL_BINARY=0 LABEL org.opencontainers.image.base.name="$DECAPOD_IMAGE" LABEL org.decapod.version="$DECAPOD_VERSION" diff --git a/AGENTS.md b/AGENTS.md index 902b4be..f22d4c0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,13 +4,15 @@ This is a Decapod-managed repository. **Strict Dependency: You are strictly boun ## Mandatory Orientation -**Before performing any Decapod operations beyond help/version checks, you MUST read the Agent API Orientation corpus:** +**Before performing any Decapod operations beyond help/version checks, you MUST ingest the Agent API Orientation corpus from the Decapod binary:** -1. Read **[docs/agent/api-index.md](docs/agent/api-index.md)** for high-level orientation. -2. Consult **[docs/agent/command-contracts.md](docs/agent/command-contracts.md)** for specific command requirements and recovery paths. -3. Reference **[docs/agent/payload-examples.md](docs/agent/payload-examples.md)** for valid call shapes. +```bash +decapod docs ingest +``` + +This command outputs the embedded agent documentation (api-index.md, command-contracts.md, payload-examples.md, error-recovery.md, state-model.md, config-schema.md, mcp.md) directly from the binary — no filesystem reads required. -**Note on Constitution vs Docs:** Agents use `decapod constitution` to discover technology, primitives in software engineering and delivery, and for scoping pre-inference context. Agents use `decapod docs` to learn the decapod binary interface - its commands, CLI flags, and payloads to run against the decapod binary itself. +**Note on Constitution vs Docs:** Agents use `decapod constitution` to discover technology, primitives in software engineering and delivery, and for scoping pre-inference context. Agents use `decapod docs` to access the embedded agent-facing methodology documentation (restricted to docs/agent/). ## Mandatory Initialization @@ -57,7 +59,7 @@ decapod constitution search --query "" 9. **MUST** stop if requirements conflict or intent is ambiguous. 10. **MUST** respect the interface abstraction boundary. 11. **MUST** maintain **Living Specs**: treat `.decapod/generated/specs/*` as dynamic documents. -12. **MUST** use the command contracts in `docs/agent/command-contracts.md` instead of guessing arguments. +12. **MUST** use the command contracts from `decapod docs` output instead of guessing arguments. ## Decapod Invocation Contract Agents act. Decapod orients. Call Decapod at decision boundaries: ambiguous requests, public impact, unclear proof, todo lifecycle, scope expansion, context loss, or multi-agent collision risk. diff --git a/CLAUDE.md b/CLAUDE.md index 6c084a9..887b11f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -5,8 +5,8 @@ See `AGENTS.md` for the universal contract. ## Orientation & Documentation -- **Read `docs/agent/api-index.md` before using Decapod beyond help/version checks.** -- Use `docs/agent/command-contracts.md` instead of guessing command arguments. +- **Run `decapod docs ingest` before using Decapod beyond help/version checks.** +- Use `decapod docs` command output instead of guessing command arguments. - Treat Decapod errors as recovery instructions. - Respect repo-local config policy and workspace boundaries. - Do not bypass Decapod boundaries to appear productive. diff --git a/CODEX.md b/CODEX.md index 85f7ac5..5265ac4 100644 --- a/CODEX.md +++ b/CODEX.md @@ -5,8 +5,8 @@ See `AGENTS.md` for the universal contract. ## Orientation & Documentation -- **Read `docs/agent/api-index.md` before using Decapod beyond help/version checks.** -- Use `docs/agent/command-contracts.md` instead of guessing command arguments. +- **Run `decapod docs ingest` before using Decapod beyond help/version checks.** +- Use `decapod docs` command output instead of guessing command arguments. - Treat Decapod errors as recovery instructions. - Respect repo-local config policy and workspace boundaries. - Do not bypass Decapod boundaries to appear productive. diff --git a/GEMINI.md b/GEMINI.md index ecccb3b..1aa9c77 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -5,8 +5,8 @@ See `AGENTS.md` for the universal contract. ## Orientation & Documentation -- **Read `docs/agent/api-index.md` before using Decapod beyond help/version checks.** -- Use `docs/agent/command-contracts.md` instead of guessing command arguments. +- **Run `decapod docs ingest` before using Decapod beyond help/version checks.** +- Use `decapod docs` command output instead of guessing command arguments. - Treat Decapod errors as recovery instructions. - Respect repo-local config policy and workspace boundaries. - Do not bypass Decapod boundaries to appear productive. diff --git a/internal/tui/views.go b/internal/tui/views.go index 8245663..b7c48cc 100644 --- a/internal/tui/views.go +++ b/internal/tui/views.go @@ -1325,7 +1325,7 @@ func (m Model) logsView() string { return b.String() } -const maxMsgLen = 20 +const maxMsgLen = 40 // formatBuildMessage truncates a build message to maxMsgLen characters and // appends a PR reference if one is found in the original message. diff --git a/internal/tui/views_test.go b/internal/tui/views_test.go new file mode 100644 index 0000000..a7f3cf9 --- /dev/null +++ b/internal/tui/views_test.go @@ -0,0 +1,16 @@ +package tui + +import ( + "strings" + "testing" +) + +func TestFormatBuildMessageTruncatesAt40Characters(t *testing.T) { + message := strings.Repeat("a", maxMsgLen+10) + + got := formatBuildMessage(message) + + if want := strings.Repeat("a", maxMsgLen) + "…"; got != want { + t.Fatalf("formatBuildMessage() = %q, want %q", got, want) + } +}