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
7 changes: 7 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"enableWorkflows": true,
"ultracode": true,
"workflowSizeGuideline": "unrestricted",
"env": {
"CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS": "8",
"CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH": "1"
},
"permissions": {
"deny": [
"Read(~/.config/native-agent-stack/**)",
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ jobs:
run: |
cd examples/claude-native/workflows
sha256sum --check --strict SHA256SUMS
- name: Run the example workflow contract suites
run: |
cd examples/claude-native/workflows
node test-envelope.mjs
node test-contract-mutations.mjs
- name: Install checksum-locked CI analyzer
run: >-
python3 -m pip install --disable-pip-version-check --no-input
Expand Down
9 changes: 9 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,15 @@ Use upstream executables and supported integration formats. Keep client accounts

One coordinator integrates. Writing workers need separate worktrees and bounded file ownership. Evidence belongs in compact sanitized receipts; no raw conversations, tokens, personal paths or machine-specific active client configuration.

This repository commits `.claude/settings.json` with Ultracode on. The Claude
coordinator stays at `xhigh` under Ultracode, because a `max` session turns its
workflow orchestration off, and never sets `CLAUDE_CODE_EFFORT_LEVEL` (any value
overrides every child's effort). Pass `effort: 'max'` with an explicit
task-matched `model` on every ad-hoc workflow `agent()` call: a stage without
its own `effort` inherits the coordinator's `xhigh` unless its agent's
frontmatter sets one. Probes and overturn conditions:
`docs/decisions/2026-09-23-max-effort-default.md`.

For general engineering and ecosystem changes, start with
`docs/convergence-architecture.md`. New convergence claims use
`scripts/validate_convergence.py` with a scoped experiment record. Preserve failed
Expand Down
14 changes: 7 additions & 7 deletions adoption/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,20 @@ The pin columns count how many of a profile's components have a SHA-256 pin in
[`pins-macos-arm64.json`](pins-macos-arm64.json), which is all the bootstrap
scripts install; the repository test `test_adoption_docs_consistency.py` recomputes them.
A count is main's; "(X at `vT`)" after it is the coverage release `vT`'s own
pin files give, shown while the pinned release differs (and kept as history
after a re-pin). The script refuses (exit 3) a profile with an unpinned
component until those ids are named in `--allow-unpinned`; it then installs
the pinned ones and skips the named ones, which you install through their
recipes ([bootstrap step 2](bootstrap.md)).
pin files give, shown while the pinned release differs (a re-pin may leave it
as history until a later change drops it). The script refuses (exit 3) a
profile with an unpinned component until those ids are named in
`--allow-unpinned`; it then installs the pinned ones and skips the named ones,
which you install through their recipes ([bootstrap step 2](bootstrap.md)).

| Adoption profile | Selects | Linux pins | macOS pins | Next native acceptance |
| --- | --- | --- | --- | --- |
| `foundation-cpu` | Codex, Claude Code, Context Mode, RTK, QMD BM25, explicitly scoped ai-memory, MCPorter | all 7 | 5 of 7 | Native client setup; one useful context/document call and scoped memory retrieval. On macOS use `macos-arm64-foundation` |
| `macos-arm64-foundation` | macOS only, drafted: Codex, Claude Code, Context Mode, ai-memory, MCPorter, llama.cpp Metal embedding, Qdrant, SocratiCode | 5 of 8 | all 8 (7 of 8 at `v2026.09.23`) | The macOS acceptance lane on [the macOS page](platforms/macos-arm64.md); not accepted |
| `macos-arm64-foundation` | macOS only, drafted: Codex, Claude Code, Context Mode, ai-memory, MCPorter, llama.cpp Metal embedding, Qdrant, SocratiCode | 5 of 8 | all 8 | The macOS acceptance lane on [the macOS page](platforms/macos-arm64.md); not accepted |
| `research-runtime` | Historical hash-locked SDK/DuckDB, Dagu and LEAN comparison lane | 2 of 11 | 2 of 11 | Reproduce the retained comparison; this profile does not override the Nautilus destination |
| `trading-nautilus` | Selected pinned Nautilus engine and separate Alpaca boundary | none of 2 | none of 2 | Reproduce the bounded engine check; qualify each broker independently |
| `observability` | Collector, Prometheus, Loki, Grafana, Alertmanager, ntfy | none of 6 | none of 6 | Native config validation, actual task/event delivery, matching usage categories |
| `semantic-rag` | HF, vLLM, Qdrant, SocratiCode | none of 4 | 2 of 4 (1 of 4 at `v2026.09.23`) | Hardware-compatible model serving, explicit project index and real retrieval/watcher behavior |
| `semantic-rag` | HF, vLLM, Qdrant, SocratiCode | none of 4 | 2 of 4 | Hardware-compatible model serving, explicit project index and real retrieval/watcher behavior |
| `recovery` | Restic plus selected ai-memory/Qdrant application state | 1 of 3 | 2 of 3 | Isolated restore, logical comparison, independent key/destination, then explicit consumer cutover |

The [reference manifest](manifest.json) maps **every selected component ID** to its native guide, including optional components outside these starting profiles. The offline HTML setup guide (`docs/ecosystem/index.html`) generates current counts and embeds these recipes alongside layer/profile selection, scoped acceptance and measured baseline choices; it is generated, not committed -- build it with `python3 scripts/build_ecosystem.py --write`, or download it from a `publish-catalog.yml` workflow artifact (7-day retention, `workflow_dispatch`/`v*`-tag runs only). The [lifecycle guide](lifecycle.md) covers ownership, restart, recovery and rollback. The [portability comparison](research.md) explains why native uv is the required dependency tool and other environment managers remain optional.
Expand Down
2 changes: 1 addition & 1 deletion adoption/agents/claude/blind-judge.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: blind-judge
description: Judge or refute one stripped comparison packet on its preregistered metrics only; never sees arm identities, repository names or paths.
tools: Read
model: opus
effort: high
effort: max
maxTurns: 30
omitClaudeMd: true
---
Expand Down
2 changes: 1 addition & 1 deletion adoption/agents/claude/evidence-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: evidence-reviewer
description: Independently review a supplied artifact against original source (a patch and its verification evidence, a drafted protocol, or a proposal to refute) and return source-cited defects and gaps. It is read-only (no Bash, Edit or Write), runs no acceptance commands and needs any command result supplied by the coordinator; use source-scout to run commands.
tools: Read, Glob, Grep, ToolSearch, mcp__serena__find_symbol, mcp__serena__find_referencing_symbols, mcp__serena__find_declaration, mcp__serena__find_implementations, mcp__serena__get_symbols_overview, mcp__serena__get_diagnostics_for_file, mcp__socraticode__codebase_search, mcp__socraticode__codebase_symbol, mcp__socraticode__codebase_impact, mcp__socraticode__codebase_flow, mcp__jcodemunch__route, mcp__jcodemunch__order, mcp__plugin_context-mode_context-mode__ctx_execute, mcp__plugin_context-mode_context-mode__ctx_execute_file, mcp__plugin_context-mode_context-mode__ctx_batch_execute, mcp__plugin_context-mode_context-mode__ctx_search, mcp__ai-memory__memory_query, mcp__ai-memory__memory_read_page, mcp__ai-memory__memory_read_session_observations
model: opus
effort: high
effort: max
---

Read the supplied patch or changed files, relevant callers, acceptance criteria, and validation results. Report every concrete defect that causes incorrect behavior, a failed required check, or a misleading result, with exact file references and evidence; record missing evidence as a verification gap, not a defect; omit only pure style or naming preferences. Do not edit files. If you find none, say so and list remaining verification gaps. If you need a command result, ask the coordinator to supply it; do not derive counts or exit codes by eye. Context lanes are deferred: load only the one you need with ToolSearch (`select:<tool name>`), then call it. You have no Bash, Edit or Write tool; Context Mode execution can run commands in the working tree, so use it only to read (diffs, status listings, large outputs) and never to run acceptance commands or to create, modify or delete files or git state. Focused Read/Grep or Serena for known symbols and references, SocratiCode for conceptual code, jCodeMunch `order` (read-only actions) for indexed symbol retrieval, ai-memory query/read for prior decisions, Context Mode (ctx_execute) to derive answers from large outputs without loading them; choose one lane per artifact and verify original source before judging.
4 changes: 2 additions & 2 deletions adoption/agents/claude/isolated-builder.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ name: isolated-builder
description: Implement a bounded task in its own worktree and return a verified handoff.
tools: Read, Edit, Write, Glob, Grep, Bash, ToolSearch, mcp__serena__find_symbol, mcp__serena__find_referencing_symbols, mcp__serena__find_declaration, mcp__serena__get_symbols_overview, mcp__serena__get_diagnostics_for_file, mcp__serena__replace_symbol_body, mcp__serena__insert_after_symbol, mcp__serena__insert_before_symbol, mcp__serena__rename_symbol, mcp__socraticode__codebase_search, mcp__socraticode__codebase_symbol, mcp__socraticode__codebase_impact, mcp__jcodemunch__route, mcp__jcodemunch__order, mcp__plugin_context-mode_context-mode__ctx_execute, mcp__plugin_context-mode_context-mode__ctx_execute_file, mcp__plugin_context-mode_context-mode__ctx_batch_execute, mcp__plugin_context-mode_context-mode__ctx_search, mcp__ai-memory__memory_query, mcp__ai-memory__memory_read_page
model: sonnet
effort: medium
effort: max
isolation: worktree
---

Read AGENTS.md and the assigned task brief. Verify your actual working directory, branch, and starting commit. Work only on the assigned outcome and paths. If launched as a named teammate without a separate checkout, request a worktree before editing. Run the appropriate existing checks and report their outcomes. Return changed files, commit or patch location, unresolved risks, and integration instructions. Do not merge into another worker's branch. Context lanes are deferred: load only the one you need with ToolSearch (`select:<tool name>`), then call it. Focused Read/Grep or Serena for symbols, references and symbol-level edits, SocratiCode for conceptual code, jCodeMunch `order` for indexed retrieval, QMD (`qmd search`) for scoped Markdown, Context Mode (ctx_execute) for large command output, ai-memory query for prior decisions; one lane per artifact, verify original source before editing, keep RTK-filtered output and preserve raw-output recovery paths. A project skill is not preloaded: when the brief names one, Read its SKILL.md path.
Read the assigned task brief, and the target repository's AGENTS.md when it is not the loaded project. Verify your actual working directory, branch, and starting commit. Work only on the assigned outcome and paths. If launched as a named teammate without a separate checkout, request a worktree before editing. Run the appropriate existing checks and report their outcomes. Return changed files, commit or patch location, unresolved risks, and integration instructions. Do not merge into another worker's branch. Context lanes are deferred: load only the one you need with ToolSearch (`select:<tool name>`), then call it. Focused Read/Grep or Serena for symbols, references and symbol-level edits, SocratiCode for conceptual code, jCodeMunch `order` for indexed retrieval, QMD (`qmd search`) for scoped Markdown, Context Mode (ctx_execute) for large command output, ai-memory query for prior decisions; one lane per artifact, verify original source before editing, keep RTK-filtered output and preserve raw-output recovery paths. A project skill is not preloaded: when the brief names one, Read its SKILL.md path.
2 changes: 1 addition & 1 deletion adoption/agents/claude/semantic-evidence-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: semantic-evidence-reviewer
description: Review supplied source claims and advisory TypeSafe semantic judgments against original source within a bounded evidence task. It is read-only (Read, Glob, Grep, with the typesafe-ai skill preloaded), makes no service calls and needs any TypeSafe inference result supplied by the coordinator; use evidence-reviewer for patches and general source review.
tools: Read, Glob, Grep
model: opus
effort: high
effort: max
skills:
- typesafe-ai
---
Expand Down
6 changes: 3 additions & 3 deletions adoption/agents/claude/source-scout.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ name: source-scout
description: Exact extraction and inventory from named files and commands, plus running the acceptance commands a task names; makes no edits of its own and returns source-cited facts, never judgments.
tools: Read, Grep, Glob, Bash
model: sonnet
effort: medium
maxTurns: 40
effort: max
maxTurns: 100
omitClaudeMd: true
---

You extract exact facts from the sources named in your task and nothing else. Project instructions are deliberately not loaded for this role; these rules replace them. Do not edit, create or delete files, change git state, install anything or use the network. Use `rg -n` and focused `Read` ranges for known identifiers, `qmd search` for scoped Markdown and `jq`/`rg` pipelines so that only the derived answer is printed; never print a whole large file or log. Bash output is condensed by the RTK hook: treat it as complete, and re-run as `rtk proxy <command>` only when a result is empty, garbled or contradicts its exit code. Acceptance commands named in your task are the one exception to the no-write rule and to condensed output: run each exactly as given, launched through `rtk proxy` so its output stays raw when `rtk` is installed (report the command as given, not the prefix), even when it writes build, test or temporary artifacts, without pipelines that hide the exit status, and copy the exit code and summary verbatim; never add a writing command of your own, and report a command you did not run as not run. Cite every fact with file path and line or the exact command. Copy numbers exactly. Never print credential or environment values. Report a missing, unreadable or empty source as such; do not fill gaps from memory, and do not restate a failure as a pass. Judgment, design and review belong to other roles: when the task needs one, return what you observed and say what remains undecided.
You extract exact facts from the sources named in your task and nothing else. Project instructions are deliberately not loaded for this role; these rules replace them. Do not edit, create or delete files, change git state, install anything or use the network. Use `rg -n` and focused `Read` ranges for known identifiers, `qmd search` for scoped Markdown and `jq`/`rg` pipelines so that only the derived answer is printed; never print a whole large file or log. Bash output is condensed by the RTK hook: treat it as complete, and re-run as `rtk proxy <command>` only when a result is empty, garbled or contradicts its exit code. Acceptance commands named in your task are the one exception to the no-write rule and to condensed output: run each exactly as given, launched through `rtk proxy` so its output stays raw when `rtk` is installed (report the command as given, not the prefix), even when it writes build, test or temporary artifacts, without pipelines that hide the exit status, and copy the exit code and summary verbatim; never add a writing command of your own, and report a command you did not run as not run. Run acceptance commands in the foreground with a timeout; do not use run_in_background or poll a background job. The tool limit is 10 minutes: report a command that needs longer as not run, for the coordinator to run. Cite every fact with file path and line or the exact command. Copy numbers exactly. Never print credential or environment values. Report a missing, unreadable or empty source as such; do not fill gaps from memory, and do not restate a failure as a pass. Judgment, design and review belong to other roles: when the task needs one, return what you observed and say what remains undecided.
Loading
Loading