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
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
{
"name": "darrow-adaptive-delivery",
"source": "./plugins/orchestration/darrow-adaptive-delivery",
"description": "Compile bounded engineering work into task-informed host-native goals"
"description": "Diagnose host capacity or compile bounded engineering work into one host-native owner"
},
{
"name": "darrow-ticket-pipeline",
Expand Down
35 changes: 18 additions & 17 deletions docs/choosing-plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,24 @@ the other layers. Its README owns its prerequisites, behavior, and safety rules.

## Choose by intent

| Your next task | Plugin and local instructions |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| Assess whether a request is ready to implement | [Readiness gate](../plugins/capability/darrow-readiness-gate/README.md) |
| Clarify behavior or make an implementation plan | [Discovery](../plugins/capability/darrow-discovery/README.md) |
| Implement an observable behavior test-first | [TDD](../plugins/capability/darrow-tdd/README.md) |
| Review a change independently | [Review](../plugins/capability/darrow-review/README.md) |
| Verify implementation acceptance through independent assessment | [Verification](../plugins/capability/darrow-verification/README.md) |
| Create a branch, commit, or pull request | [Git](../plugins/capability/darrow-git/README.md) |
| Read, list, create, or update GitHub issues | [GitHub tickets](../plugins/capability/darrow-tickets-github/README.md) |
| Understand technical structure in a compact visual | [Explanation](../plugins/capability/darrow-explanation/README.md) |
| Export Codex turn telemetry to Langfuse | [Langfuse observability](../plugins/capability/darrow-observability-langfuse/README.md) |
| Organize repository agent guidance | [Information architecture](../plugins/foundation/darrow-information-architecture/README.md) |
| Capture or find accepted decisions | [Decisions](../plugins/foundation/darrow-decisions/README.md) |
| Create or validate a reusable skill | [Skill authoring](../plugins/foundation/darrow-skill-authoring/README.md) |
| Explicitly hand a bounded engineering task to one execution owner | [Adaptive Delivery](../plugins/orchestration/darrow-adaptive-delivery/README.md) |
| Explicitly request one ticket through a new branch to a PR | [Ticket to PR](../plugins/task-recipe/darrow-ticket-to-pr/README.md) |
| Study the former static workflow or run a comparison | [Ticket pipeline reference](../plugins/orchestration/darrow-ticket-pipeline/README.md) |
| Your next task | Plugin and local instructions |
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Assess whether a request is ready to implement | [Readiness gate](../plugins/capability/darrow-readiness-gate/README.md) |
| Clarify behavior or make an implementation plan | [Discovery](../plugins/capability/darrow-discovery/README.md) |
| Implement an observable behavior test-first | [TDD](../plugins/capability/darrow-tdd/README.md) |
| Review a change independently | [Review](../plugins/capability/darrow-review/README.md) |
| Verify implementation acceptance through independent assessment | [Verification](../plugins/capability/darrow-verification/README.md) |
| Create a branch, commit, or pull request | [Git](../plugins/capability/darrow-git/README.md) |
| Read, list, create, or update GitHub issues | [GitHub tickets](../plugins/capability/darrow-tickets-github/README.md) |
| Understand technical structure in a compact visual | [Explanation](../plugins/capability/darrow-explanation/README.md) |
| Export Codex turn telemetry to Langfuse | [Langfuse observability](../plugins/capability/darrow-observability-langfuse/README.md) |
| Organize repository agent guidance | [Information architecture](../plugins/foundation/darrow-information-architecture/README.md) |
| Capture or find accepted decisions | [Decisions](../plugins/foundation/darrow-decisions/README.md) |
| Create or validate a reusable skill | [Skill authoring](../plugins/foundation/darrow-skill-authoring/README.md) |
| Explicitly hand a bounded engineering task to one execution owner | [Adaptive Delivery](../plugins/orchestration/darrow-adaptive-delivery/README.md) |
| Check whether Codex or Claude Code can support Adaptive Delivery delegation | [Adaptive Delivery doctor](../plugins/orchestration/darrow-adaptive-delivery/README.md#doctor-adaptive-delivery) |
| Explicitly request one ticket through a new branch to a PR | [Ticket to PR](../plugins/task-recipe/darrow-ticket-to-pr/README.md) |
| Study the former static workflow or run a comparison | [Ticket pipeline reference](../plugins/orchestration/darrow-ticket-pipeline/README.md) |

This is the complete shipped plugin catalog. Planned names are not installation
targets; consult the [marketplace manifest](../.claude-plugin/marketplace.json)
Expand Down
68 changes: 63 additions & 5 deletions docs/specs/adaptive-delivery.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ verification, feedback, and completion.

Plugin: `darrow-adaptive-delivery`
Skill: `adaptive-delivery`
Companion capability: `doctor-adaptive-delivery`

## Why

Expand Down Expand Up @@ -89,17 +90,19 @@ reason: explicit-orchestration-entrypoint-required

The contained Python package is `<plugin-root>/backend`, invoked through
`uv run --quiet --frozen --no-dev --project <absolute-backend>` followed by
`adaptive-delivery-preflight` or `claude-agent-route`. On Codex, the activated
`adaptive-delivery-preflight`, `claude-agent-route`, or `host-config-doctor`. On Codex, the activated
file `<plugin-root>/skills/adaptive-delivery/SKILL.md` binds that same plugin root;
`../../backend` starts at the directory containing `SKILL.md`. Claude binds
`${CLAUDE_PLUGIN_ROOT}/backend`. Check the package and lock at that exact location;
unavailability does not authorize searching for a different installation.

The package supports Python 3.10–3.13, UV, and Git on Linux, macOS, and native
Windows, with no runtime dependencies or Bash entrypoint adapters. Native paths
and argument-vector subprocesses preserve spaces, Unicode, and linked-worktree
identity. It retains the prepared-v2, route-v2, and Claude-agent-route-v1 records,
record ordering, policy precedence, refusal exit 2, and help exit 0. Commands emit
Windows, with no Bash entrypoint adapters. Python 3.10 uses the locked `tomli`
backport for host-configuration diagnosis; newer interpreters use `tomllib` from
the standard library. Native paths and argument-vector subprocesses preserve
spaces, Unicode, and linked-worktree identity. It retains the prepared-v2,
route-v2, and Claude-agent-route-v1 records, record ordering, policy precedence,
refusal exit 2, and help exit 0. Commands emit
UTF-8 stdout/stderr with LF records regardless of the host's redirected console
encoding, including native Windows code pages. JSON uses
the standard-library parser; syntax diagnostics may name its line/column while
Expand Down Expand Up @@ -156,6 +159,54 @@ If a material product choice, permission, destructive scope, security policy,
or publication authority is missing before launch, ask the smallest concrete
question and do not start the owner.

## Host-configuration doctor

`doctor-adaptive-delivery` is a separate, read-only capability for diagnosing
whether the effective Codex or Claude Code host configuration can support the
delegation topology required by Adaptive Delivery. Ordinary doctor intent may
select this capability, but must never activate `adaptive-delivery` or launch an
owner.

The doctor identifies the host, installed version when observable, and the
exact effective source it checked. For Codex it checks the active
`CODEX_HOME/config.toml` (or the default user configuration under `HOME` on
Unix and `USERPROFILE` on native Windows when `CODEX_HOME` is unset), not a
similarly named repository file. An isolated evaluation home is
reported as such so the source checkout's `.codex/config.toml` is not mistaken
for the evaluated process's configuration. It reports absent, unreadable,
malformed, explicitly disabled, unset/default, inadequate, and adequate states
without printing unrelated configuration or credentials.

Codex diagnosis evaluates `agents.enabled` and
`agents.max_concurrent_threads_per_session` separately. The concurrency limit
counts spawned-agent threads and excludes the primary. `agents.max_depth` is a
different nesting control for the V1 backend and is explicitly reported as
ignored by V2; it can never compensate for inadequate V2 concurrency.

Claude Code diagnosis checks the effective process environment and installed
version. On versions that support them it evaluates
`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` and
`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` as separate controls. It reports version
or backend applicability honestly rather than inventing support for an older
or unobserved host.

Capacity conclusions derive from this topology, where the primary thread is
not itself a spawned-agent slot:

```text
primary -> owner -> verification coordinator -> review coordinator
-> Standards reader
-> Spec reader
```

The baseline owner-only path needs one spawned-agent slot and one layer below
the primary. The full required-assessment path needs five concurrently open
spawned-agent slots and four layers of nesting. A doctor result distinguishes
those two conclusions and gives a source-specific setup action for every known
inadequate or disabled value. Unknown host defaults, versions, or backends stay
unknown rather than being called adequate. Diagnostics never mutate host or
repository configuration.

## Goal contract

The contract is self-contained and concise. It contains, in plain language:
Expand Down Expand Up @@ -705,6 +756,13 @@ Nested host processes are not an adaptive-delivery fallback.
capability evidence and applies the one/many/zero-match policy above. The
recipe owns no branch choice; the Git capability owns deterministic
discovery and preparation.
20. **ADL-D1 — Separate read-only host diagnosis.** Host-configuration doctor
intent selects `doctor-adaptive-delivery`, never activates orchestration,
and makes no configuration or repository mutation. Its result identifies
the effective source and host/version applicability, keeps concurrency and
nesting distinct, derives baseline and full-path capacity from the topology
above, refuses unreadable or malformed required input, and never exposes
unrelated values or credentials.

## Packaging and portability

Expand Down
16 changes: 16 additions & 0 deletions docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,22 @@ and refuse conflicts; ticket retrieval refuses a foreign-project URL.
A refusal does not authorize force, fallback mutations, or bypassing hooks.
Resolve the exact missing input or authority through the responsible workflow.

## Adaptive Delivery cannot launch a nested coordinator or reader

Invoke `doctor-adaptive-delivery` from the installed
`darrow-adaptive-delivery` plugin. It performs a read-only check of the current
host's effective configuration, reports the exact source, and distinguishes
the one-slot owner-only path from the five-slot, four-layer full verification
and review topology.

For Codex, keep `agents.max_concurrent_threads_per_session` separate from
`agents.max_depth`; V2 ignores the latter. In an isolated eval, diagnose the
eval process's `CODEX_HOME/config.toml`, not this checkout's
`.codex/config.toml`. For Claude Code, the doctor checks concurrency and spawn
depth separately and reports whether the installed version supports each
control. Follow the source-specific guidance in the result and start a fresh
host session after changing configuration yourself.

## Two sources disagree

Cite both paths and the concrete claims. Specifications and accepted decisions
Expand Down
3 changes: 2 additions & 1 deletion plugins/orchestration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ installable from the capabilities they may compose.

## Choose a plugin

- [Adaptive Delivery](darrow-adaptive-delivery/README.md) is the current bounded engineering helper.
- [Adaptive Delivery](darrow-adaptive-delivery/README.md) provides the current
bounded engineering helper and a separate read-only host-capacity doctor.
- [Ticket pipeline](darrow-ticket-pipeline/README.md) is an installable deprecated reference for deliberate comparisons.

Read the chosen plugin's local prerequisites, expected effects, and safety
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "darrow-adaptive-delivery",
"description": "Adaptive Delivery: ready and compile bounded engineering requests, then launch one routed subagent owner",
"version": "0.22.5",
"description": "Adaptive Delivery: diagnose host capacity or launch one routed owner for bounded engineering work",
"version": "0.23.0",
"license": "BUSL-1.1",
"author": {
"name": "Björn Rochel",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "darrow-adaptive-delivery",
"version": "0.22.5",
"description": "Adaptive Delivery: ready and compile bounded engineering requests, then launch one routed subagent owner",
"version": "0.23.0",
"description": "Adaptive Delivery: diagnose host capacity or launch one routed owner for bounded engineering work",
"author": {
"name": "Björn Rochel",
"email": "bjoern@bjro.de"
Expand All @@ -10,12 +10,12 @@
"interface": {
"displayName": "Darrow -> Adaptive Delivery",
"shortDescription": "One routed owner for bounded engineering goals",
"longDescription": "Adaptive Delivery prepares a bounded engineering request, reuses or obtains readiness, binds intent-matched skills, selects a workflow, risk, model, and effort, and launches exactly one separate subagent owner without a lifecycle ledger.",
"longDescription": "Adaptive Delivery can diagnose host delegation capacity read-only, or prepare a bounded engineering request and launch exactly one separate routed owner without a lifecycle ledger.",
"developerName": "Björn Rochel",
"category": "Productivity",
"capabilities": ["Interactive", "Read", "Write"],
"defaultPrompt": [
"Preflight this bounded engineering request and launch one route-selected subagent owner."
"Diagnose this host's delivery capacity or preflight a bounded request and launch one route-selected owner."
]
}
}
Loading
Loading