@agentskit/harness 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +2 -1
- package/capabilities/public-surface.json +203 -72
- package/dist/cli.js +1357 -249
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +526 -126
- package/dist/index.js +1503 -375
- package/dist/index.js.map +1 -1
- package/docs/ADR-0028-mcp-adapter-boundary.md +45 -0
- package/docs/LOOP.md +95 -0
- package/docs/MODULE-BOUNDARIES.md +8 -3
- package/loop.config.example.yaml +47 -2
- package/package.json +1 -1
- package/release/manifest.json +1 -1
- package/release/notes.md +8 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# ADR-0028: MCP is an adapter-only boundary
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Accepted — 2026-09-11.
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
MCP (Model Context Protocol) is a useful integration surface for read-only
|
|
10
|
+
inspection and, later, gated tool calls. The keep-pushing loop and kernel must
|
|
11
|
+
remain usable without any MCP host, SDK, or network dependency. MODULE-BOUNDARIES
|
|
12
|
+
and ADR-0026 already classify MCP as an adapter concern; 0.6.0 needs an
|
|
13
|
+
explicit decision before any public bridge ships.
|
|
14
|
+
|
|
15
|
+
## Decision
|
|
16
|
+
|
|
17
|
+
1. **Adapter-only.** MCP lives under `src/adapters/mcp.ts` (and future adapter
|
|
18
|
+
modules). Kernel modules do not import MCP clients, hosts, or transports.
|
|
19
|
+
2. **Default-deny policy.** Every tool call goes through an allowlist
|
|
20
|
+
(`allowTools`) and a `PolicyGate` (or compatible `evaluate`). Missing
|
|
21
|
+
allowlist entry or non-`allow` decision returns `{ status: 'blocked' }`
|
|
22
|
+
without invoking the underlying call.
|
|
23
|
+
3. **Read-only profile first.** The initial public surface is a policy-gated
|
|
24
|
+
call bridge intended for read-only / inspection tools. Mutating MCP tools
|
|
25
|
+
require a later ADR covering authorization, idempotency, and audit evidence.
|
|
26
|
+
4. **Harness works without MCP.** Default loop config keeps `mcp.enabled: false`.
|
|
27
|
+
No MCP process is started by install, tick, or deliver.
|
|
28
|
+
5. **Not wired into loop tick/deliver in 0.6.0.** The bridge is exported for
|
|
29
|
+
composition and future CLI/doctor use. Tick and deliver must not call it in
|
|
30
|
+
this release.
|
|
31
|
+
|
|
32
|
+
## Consequences
|
|
33
|
+
|
|
34
|
+
- Consumers can plug MCP behind the same policy gate used by session tool
|
|
35
|
+
recording without coupling the kernel to a vendor host.
|
|
36
|
+
- Loop automation remains deterministic and offline-testable when MCP is off.
|
|
37
|
+
- A later release may wire a read-only MCP profile into doctor or a dedicated
|
|
38
|
+
CLI after eval coverage; mutating tools stay out until gated separately.
|
|
39
|
+
|
|
40
|
+
## Alternatives considered
|
|
41
|
+
|
|
42
|
+
- **Kernel MCP host:** rejected; violates ADR-0026 and forces an optional
|
|
43
|
+
network dependency into deterministic gates.
|
|
44
|
+
- **Wire MCP into tick/deliver now:** rejected for 0.6.0; needs allowlist
|
|
45
|
+
provenance, audit events, and eval coverage first.
|
package/docs/LOOP.md
CHANGED
|
@@ -139,6 +139,20 @@ Start from [`loop.config.example.yaml`](../loop.config.example.yaml) at the pack
|
|
|
139
139
|
| `machine.slots` | `sampleMachine` + `adaptiveConcurrency`, free RAM reserve, WSL cap, running worktrees | no — 0 free slots is a warning, not a failure |
|
|
140
140
|
| `linear.queue` | `orca linear list-issues` per configured state, filtered and ordered locally | yes — an unreachable Linear blocks |
|
|
141
141
|
|
|
142
|
+
|
|
143
|
+
## Dynamic model routing
|
|
144
|
+
|
|
145
|
+
`models.routing.mode` controls how the loop picks `provider/model` for each role:
|
|
146
|
+
|
|
147
|
+
| Mode | Behaviour |
|
|
148
|
+
|---|---|
|
|
149
|
+
| `tiers` (default) | YAML declaration order; usage only as available/unavailable (0.6 behaviour). |
|
|
150
|
+
| `hybrid` | Keep tier bands (quality policy); **inside a tier** pick the provider with the most remaining Orca usage. |
|
|
151
|
+
| `dynamic` | Flatten all YAML candidates; rank by remaining usage (YAML order is a soft tie-break). |
|
|
152
|
+
| `catalog` | Discover models from CLI lists (`grok models`), builtin catalog, and optional [Artificial Analysis](https://artificialanalysis.ai/) (cached under `stateDir/catalog/`), then rank by usage + quality band (`models.roles.*.quality`). |
|
|
153
|
+
|
|
154
|
+
Providers still need a `models.providers.<id>` block (`bin` / `tui` / `headless`) — Orca cannot invent argv. The doctor warns when Orca shows an integration that is not declared.
|
|
155
|
+
|
|
142
156
|
## Model routing
|
|
143
157
|
|
|
144
158
|
`models.<role>` is a list of tiers; each tier is a list of `provider/model`. Tiers are tried in order and, inside a
|
|
@@ -160,6 +174,87 @@ When a provider runs out of usage the loop records a cooldown in `<stateDir>/pro
|
|
|
160
174
|
inside a WSL distro (host Defender load is invisible there). The loop never lowers a running worker; it only
|
|
161
175
|
decides whether to start another.
|
|
162
176
|
|
|
177
|
+
## Integrations used by the loop
|
|
178
|
+
|
|
179
|
+
The loop talks to the rest of AgentsKit through **adapters and CLI seams**, not by importing those packages into
|
|
180
|
+
the published dependency tree. `@agentskit/harness` stays dependency-light (`commander`, `ink`, `react`, `yaml`,
|
|
181
|
+
`zod`); Doc Bridge and Code Review are optional at runtime.
|
|
182
|
+
|
|
183
|
+
### Doc Bridge (context for the orchestrator)
|
|
184
|
+
|
|
185
|
+
| Item | Detail |
|
|
186
|
+
|---|---|
|
|
187
|
+
| Adapter | `src/adapters/doc-bridge.ts` → `createDocBridgeContextProvider` |
|
|
188
|
+
| Loop wiring | `resolveDocContext` in `src/loop/contract.ts` |
|
|
189
|
+
| Trigger | `.doc-bridge/index.json` exists under `project.root` |
|
|
190
|
+
| Knob | `contract.maxContextReferences` (default `6`; `0` disables) |
|
|
191
|
+
| Behaviour | Query is `"<issue id> <title>"`. Up to N deterministic references are appended to the orchestrator prompt. Missing or malformed index → **no refs** (loop continues). |
|
|
192
|
+
| Boundary | No `@agentskit/doc-bridge` import; the adapter only reads the local index contract ([ADR-0003](ADR-0003-doc-bridge-context-binding.md)). Index build/refresh stays with Doc Bridge (`pnpm docs:bridge:index` in repos that use it). |
|
|
193
|
+
|
|
194
|
+
### Code Review (`agentskit-review`)
|
|
195
|
+
|
|
196
|
+
| Item | Detail |
|
|
197
|
+
|---|---|
|
|
198
|
+
| Adapter | `src/adapters/code-review.ts` → `runCodeReview` / `buildReviewArgv` |
|
|
199
|
+
| Loop wiring | Deliver stage, after CI is green and the head has not been reviewed |
|
|
200
|
+
| CLI | `delivery.review.cli` (default `agentskit-review` from `@agentskit/code-review`) |
|
|
201
|
+
| Knobs | `mode` (`trusted-local` recommended so CLI logins work), `transport` (`headless` for current Grok CLI), `profile` (`fast` fits a 600 s Orca stage; `full` needs batching), `votes`, `concurrency`, `minSeverity`, `deadlineMs`, `maxCalls`, `post` |
|
|
202
|
+
| Provider/model | First available candidate from `models.reviewer` tiers |
|
|
203
|
+
| Verdicts | exit `0` → clean (merge path); `1` → findings ≥ floor (fix round); `2` / timeout / incomplete → wait and retry |
|
|
204
|
+
| Boundary | Argv + `--result` file only; the harness never embeds the review SDK. |
|
|
205
|
+
|
|
206
|
+
### Eval battery (package quality, not the live loop)
|
|
207
|
+
|
|
208
|
+
`evals/manifest.json` plus `runEvalBattery` / `pnpm test:eval-battery` score harness components (`doc-bridge`,
|
|
209
|
+
`code-review`, `orca-worktree`, `memory`, …) under a frozen fixture provider. That is the **library** eval gate.
|
|
210
|
+
The live SDLC loop does **not** call the eval battery on every PR; it calls `agentskit-review` on each head.
|
|
211
|
+
|
|
212
|
+
Loop-focused Vitest coverage lives under `test/loop-*.test.ts`, `test/review.test.ts`, and `test/doc-bridge.test.ts`.
|
|
213
|
+
|
|
214
|
+
## AgentsKit ecosystem map (what the harness has vs what the loop uses)
|
|
215
|
+
|
|
216
|
+
Legend: **Loop** = wired into `ak-harness loop …` today · **Kernel** = public API / contracts available to callers ·
|
|
217
|
+
**Compat** = pinned in `compatibility/manifest.json` · **Absent** = no seam yet.
|
|
218
|
+
|
|
219
|
+
| Capability | Status | Where | Notes for SDLC |
|
|
220
|
+
|---|---|---|---|
|
|
221
|
+
| **Doc Bridge** | Loop + Kernel + Compat | `adapters/doc-bridge.ts`, contract stage | Optional context on contract freeze. Playbook/docs surfaces appear as Doc Bridge scopes when the index includes them. |
|
|
222
|
+
| **Code Review** | Loop + Compat | `adapters/code-review.ts`, deliver | Live adversarial review before auto-merge. |
|
|
223
|
+
| **Orca / Linear / GitHub** | Loop | `adapters/orca-cli.ts`, `linear-orca.ts`, `github-cli.ts` | Scheduler, worktrees, queue, PR merge. |
|
|
224
|
+
| **Coding-agent CLIs** | Loop | `adapters/providers.ts`, `models.*` tiers | Claude / Codex / Grok / OpenCode via TUI + headless templates — not an AgentsKit agent registry. |
|
|
225
|
+
| **Memory** | Loop + Kernel + Compat | `kernel/memory.ts`, `loop/memory.ts` | Approved learnings (`loop learning promote`) shrink Doc Bridge/issue text in contract + brief. |
|
|
226
|
+
| **Eval** | Kernel + Compat | `kernel/eval.ts`, `evals/manifest.json` | Battery + `assessAgentEval`. **Not run inside tick/deliver**. |
|
|
227
|
+
| **Runtime (process / Docker)** | Kernel | `execution/runtime.ts` | Tool runtimes with attestation for kernel/agent sessions. Loop workers run as Orca terminals + provider TUIs instead. |
|
|
228
|
+
| **Plugin / context registry** | Kernel | `kernel/plugins.ts`, `CONTEXT_PROVIDER_SLOT` | Typed slots so Doc Bridge / Playbook / custom providers plug in without kernel changes. Loop uses Doc Bridge directly today. |
|
|
229
|
+
| **Playbook practices** | Loop (via Doc Bridge scopes) | `contract.briefScopes` → worker brief | Titles/paths for `playbook` / `for-agents` scopes listed in the brief when indexed. |
|
|
230
|
+
| **RAG (`@agentskit/rag` / os-rag)** | Kernel adapter (opt-in) | `adapters/rag-context.ts` | Argv/`ContextProvider` seam; enable via `rag.enabled` + `contract.contextProviders`. No hard dep. |
|
|
231
|
+
| **AgentsKit agent registry** | Composition (opt-in file) | `loop/agent-registry.ts` | Optional `agents.registry.yaml` role→TUI/argv overlay. Not OS marketplace. |
|
|
232
|
+
| **MCP / event bridge** | Kernel adapter + ADR-0028 | `adapters/mcp.ts` | Policy-gated tool bridge; **not** wired into tick/deliver in 0.6.0. |
|
|
233
|
+
| **`@agentskit/core` / `@agentskit/eval` / `@agentskit/memory`** | Compat pins only | `compatibility/manifest.json` | Upstream packages are compatibility-tested; harness does **not** depend on them at runtime. Callers adapt them through the seams above. |
|
|
234
|
+
|
|
235
|
+
Compatibility report for 0.4.0 was **fail-closed** on code-review quality baselines and the no-Harness pilot cohort; see `compatibility/report.md`. Refresh after each release (qualification + pinned revisions).
|
|
236
|
+
|
|
237
|
+
## What can be added to help the SDLC
|
|
238
|
+
|
|
239
|
+
**0.6.0 ships the backlog below** (memory, doctor freshness/review probe, brief scopes, deliver smoke, agent registry, RAG provider, MCP seam+ADR, Docker verify config, weekly retro automation). Remaining work is dogfooding and deeper MCP/OS registry integrations.
|
|
240
|
+
|
|
241
|
+
Ordered by leverage for a keep-pushing loop (config/adapters first; no kernel redesign required for the early items).
|
|
242
|
+
|
|
243
|
+
| Priority | Addition | Why it helps | Suggested shape |
|
|
244
|
+
|---|---|---|---|
|
|
245
|
+
| P0 | **Memory in contract + brief** | Stop re-deriving the same repo facts; carry approved decisions across tickets | On contract freeze / worker brief, `recall` from an `AgentMemoryAdapter` (backed by `@agentskit/memory` or a file store under `<stateDir>`). Persist only human-`promoteLearnings` / retro-approved records. |
|
|
246
|
+
| P0 | **Doc Bridge freshness gate** | Orchestrator context goes stale when the index is old | Doctor check: index exists, `contentHash` age, optional `docs:bridge:index` hint when missing. |
|
|
247
|
+
| P1 | **Playbook / for-agents snippets in the brief** | Workers skip repo conventions that already exist as docs | Resolve Doc Bridge (or a Playbook `ContextProvider`) with scopes `playbook` + `for-agents` and render a bounded “must follow” block into `renderWorkerBrief`. |
|
|
248
|
+
| P1 | **Eval smoke on deliver (optional)** | Catch harness/component regressions before merge on harness itself | Config flag to run a **bounded** subset of `evals/manifest.json` (or project `ak-verify`) as an extra deliver gate — not a full battery on every product PR. |
|
|
249
|
+
| P1 | **Review transport/doctor** | Incomplete reviews burned the pilot (login / model id / stage budget) | Doctor probes `agentskit-review --help`, configured transport, and a one-lens trusted-local dry call; surface `review-tool-errors` in retro. |
|
|
250
|
+
| P2 | **RAG context provider** | Large codebases exceed Doc Bridge’s deterministic top-N | New adapter implementing `ContextProvider` over `@agentskit/rag` / os-rag; same freeze-into-contract rules as Doc Bridge (hash + cap). |
|
|
251
|
+
| P2 | **AgentsKit agent/skill registry** | Reuse named agents (reviewer, security, docs) instead of free-form CLI templates | Optional `agents.registry` file or OS dispatcher lookup → map role → argv/TUI. Keep fail-closed when the registry entry is missing. |
|
|
252
|
+
| P2 | **MCP tools behind policy** | Controlled access to issue trackers, browsers, internal APIs | MCP adapter + `createPolicyGate` allowlist; record hashed tool events. Requires ADR (MODULE-BOUNDARIES already flags this). |
|
|
253
|
+
| P3 | **Kernel runtime for untrusted tools** | Sandbox one-off scripts the worker must not run on the host | Offer Docker tool runtime as an opt-in for verify commands; loop default stays Orca worktree. |
|
|
254
|
+
| P3 | **Weekly Linear retro automation** | Close the continuous-improvement loop without a human remembering `loop retro` | Orca schedule → `loop retro --learnings` → comment on a fixed Linear issue (project vs harness sections already split). |
|
|
255
|
+
|
|
256
|
+
Non-goals for the loop: embedding LLM SDKs, reading API key values from config, or making `@agentskit/*` hard dependencies of the published package. New ecosystem pieces enter as adapters/plugins with argv/timeouts and eval coverage ([ADR-0026](ADR-0026-kernel-adapters-boundary.md), [ADR-0027](ADR-0027-keep-pushing-loop.md)).
|
|
257
|
+
|
|
163
258
|
## Boundaries
|
|
164
259
|
|
|
165
260
|
Adapters (`src/adapters/command.ts`, `orca-cli.ts`, `providers.ts`, `linear-orca.ts`) depend on kernel contracts
|
|
@@ -149,7 +149,10 @@ Orca, and tracking. No adapter implementation is re-exported wholesale.
|
|
|
149
149
|
|
|
150
150
|
## External integration inventory
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
How these seams are wired into the keep-pushing loop (and what is still only a kernel contract) is summarized in
|
|
153
|
+
[`LOOP.md`](LOOP.md#integrations-used-by-the-loop) and the [AgentsKit ecosystem map](LOOP.md#agentskit-ecosystem-map-what-the-harness-has-vs-what-the-loop-uses).
|
|
154
|
+
|
|
155
|
+
| Integration | Current location | Side effects | Boundary |
|
|
153
156
|
| --- | --- | --- | --- |
|
|
154
157
|
| Doc Bridge | `src/adapters/doc-bridge.ts` | Reads a local index | Keep behind `ContextProvider`; measure context hit/quality separately. |
|
|
155
158
|
| Orca | `src/adapters/orca.ts` | None; produces argv and lifecycle projections only | Keep lease/worktree/issue-lock/SHA planning provider-neutral; execution belongs to the orchestrator. |
|
|
@@ -161,8 +164,10 @@ Orca, and tracking. No adapter implementation is re-exported wholesale.
|
|
|
161
164
|
| Process runtime | `src/execution/runtime.ts` | Starts child processes | Execution support; policy and evidence gates remain kernel decisions. |
|
|
162
165
|
| Docker runtime | `src/execution/runtime.ts` | Starts Docker containers | Optional sandbox selected by config, never a mandatory kernel dependency. |
|
|
163
166
|
| LLM provider/model | Caller/plugin | Provider call and token spend | Bind provider/model in experiment metadata; do not embed SDKs in kernel. |
|
|
164
|
-
| Memory backend | Caller/plugin; `memory.ts`
|
|
165
|
-
|
|
|
167
|
+
| Memory backend | Caller/plugin; `memory.ts` + `loop/memory.ts` | Backend reads/writes; loop file store under `stateDir` | Only human-promoted approved records enter loop prompts; prefer-over-DocBridge shrinks tokens. |
|
|
168
|
+
| RAG context | `src/adapters/rag-context.ts` | Optional argv / injected query | No hard `@agentskit/rag` dep; same ContextProvider freeze rules as Doc Bridge. |
|
|
169
|
+
| Agent registry (file) | `src/loop/agent-registry.ts` | Reads YAML | Role→TUI/argv overlay; fail closed only when `agents.requireRegistry`. |
|
|
170
|
+
| MCP/event bridge | `src/adapters/mcp.ts` + [ADR-0028](ADR-0028-mcp-adapter-boundary.md) | Policy-gated tool calls | Adapter-only in 0.6.0; **not** wired into tick/deliver. |
|
|
166
171
|
|
|
167
172
|
## Review status
|
|
168
173
|
|
package/loop.config.example.yaml
CHANGED
|
@@ -37,6 +37,15 @@ linear:
|
|
|
37
37
|
needsInfoLabel: needs-info
|
|
38
38
|
|
|
39
39
|
models:
|
|
40
|
+
# routing.mode: tiers (default) | hybrid | dynamic | catalog
|
|
41
|
+
# hybrid = keep quality tiers, pick highest remaining usage inside each tier
|
|
42
|
+
# catalog = discover models via CLI/builtin/(optional) Artificial Analysis + usage
|
|
43
|
+
routing:
|
|
44
|
+
mode: hybrid
|
|
45
|
+
usageMetric: max
|
|
46
|
+
preferKnownUsage: true
|
|
47
|
+
# roles: { orchestrator: { quality: frontier }, builder: { quality: balanced }, watcher: { quality: fast } }
|
|
48
|
+
# catalog: { sources: [cli, builtin], artificialAnalysis: { enabled: false } }
|
|
40
49
|
# Tiers, in order. Inside a tier the first provider with usage available wins.
|
|
41
50
|
# Tier 1 = subscriptions, tier 2 = cheap hosted, tier 3 = last resort.
|
|
42
51
|
orchestrator: [[codex/gpt-5.6-sol, claude/opus], [opencode/opencode-go/glm-5.3], [grok/grok-4-fast]]
|
|
@@ -90,8 +99,13 @@ delivery:
|
|
|
90
99
|
profile: fast # one bounded pass over required lenses; `full` needs batching to fit a 600 s stage
|
|
91
100
|
votes: 1
|
|
92
101
|
concurrency: 4
|
|
93
|
-
minSeverity: med
|
|
102
|
+
minSeverity: med
|
|
103
|
+
# doctorProbe: help # nit < med < high < blocker; findings at/above this block auto-merge
|
|
94
104
|
deadlineMs: 600000
|
|
105
|
+
# smoke:
|
|
106
|
+
# enabled: false
|
|
107
|
+
# kind: verify-argv
|
|
108
|
+
# argv: [pnpm, test]
|
|
95
109
|
merge:
|
|
96
110
|
auto: true
|
|
97
111
|
method: squash
|
|
@@ -104,18 +118,49 @@ delivery:
|
|
|
104
118
|
cleanupWorktree: true # remove the Orca worktree after merge
|
|
105
119
|
returnState: Todo # where a stuck/blocked issue goes back to
|
|
106
120
|
|
|
121
|
+
|
|
122
|
+
# --- 0.6.0 optional SDLC seams (defaults keep prior behaviour) ---
|
|
123
|
+
memory:
|
|
124
|
+
enabled: false # set true to recall approved learnings into contract/brief (token reduction)
|
|
125
|
+
# backend: file
|
|
126
|
+
# preferOverDocBridge: true # shrink Doc Bridge refs when memory covers them
|
|
127
|
+
# maxRecall: 5
|
|
128
|
+
# maxBlockChars: 1200
|
|
129
|
+
# categories: [adjustment] # only these LearningRecord categories become memory on promote
|
|
130
|
+
# issueCharsWithMemory: 4000
|
|
131
|
+
|
|
132
|
+
# agents:
|
|
133
|
+
# registryPath: agents.registry.yaml
|
|
134
|
+
# requireRegistry: false
|
|
135
|
+
|
|
136
|
+
# rag:
|
|
137
|
+
# enabled: false
|
|
138
|
+
# queryArgv: [] # argv printing ContextSnapshot JSON on stdout
|
|
139
|
+
# maxReferences: 4
|
|
140
|
+
|
|
141
|
+
# mcp: # public API / ADR-0028 — not wired into tick/deliver
|
|
142
|
+
# enabled: false
|
|
143
|
+
# allowTools: []
|
|
144
|
+
|
|
107
145
|
contract:
|
|
108
146
|
maxIssueChars: 12000 # issue text rendered into the orchestrator prompt (as untrusted data)
|
|
109
147
|
timeoutMs: 300000
|
|
110
148
|
maxContextReferences: 6 # Doc Bridge hits appended when .doc-bridge/index.json exists
|
|
111
149
|
reuseHours: 72 # cached contract reused for this long
|
|
150
|
+
docBridgeMaxAgeHours: 168 # doctor warns when .doc-bridge/index.json is older
|
|
151
|
+
requireDocBridge: false
|
|
152
|
+
briefScopes: [playbook, for-agents] # Doc Bridge scopes listed in the worker brief
|
|
153
|
+
maxBriefReferences: 4
|
|
154
|
+
contextProviders: [doc-bridge] # add rag when rag.enabled
|
|
112
155
|
|
|
113
156
|
schedule:
|
|
114
157
|
tick: "*/5 * * * *"
|
|
115
158
|
deliver: "*/10 * * * *"
|
|
116
159
|
precheckTimeoutSec: 120
|
|
117
160
|
harnessCommand: ak-harness # how the Orca automation runs the harness inside the workspace
|
|
118
|
-
namePrefix: loop # automations: loop-tick, loop-deliver
|
|
161
|
+
namePrefix: loop # automations: loop-tick, loop-deliver[, loop-retro]
|
|
162
|
+
# retro: weekly # with retroIssue, installs <prefix>-retro
|
|
163
|
+
# retroIssue: AGE-0 # Linear issue that receives the digest comment
|
|
119
164
|
runner: precheck # the stage runs inside Orca's precheck command; no agent session is ever opened
|
|
120
165
|
stageTimeoutSec: 600 # Orca caps prechecks at 600 s; one tick/deliver run must fit
|
|
121
166
|
# provider: claude # Orca agent that executes the automation prompt (default: watcher role)
|
package/package.json
CHANGED
package/release/manifest.json
CHANGED
package/release/notes.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
# 0.7.0 release candidate
|
|
2
|
+
|
|
3
|
+
Dynamic Orca-aware model routing (hybrid/dynamic/catalog) with remaining-usage ranking and a living model catalog (CLI + builtin + optional Artificial Analysis).
|
|
4
|
+
|
|
5
|
+
# 0.6.0 release candidate
|
|
6
|
+
|
|
7
|
+
Keep-pushing loop gains approved memory (token reduction + continuous improvement), Doc Bridge freshness/review doctor probes, brief guidance scopes, optional deliver smoke, agent registry YAML, RAG context provider, MCP adapter seam (ADR-0028), Docker verify config, and weekly Linear retro automation. Config defaults preserve 0.5.0 behaviour.
|
|
8
|
+
|
|
1
9
|
# 0.5.0 release candidate
|
|
2
10
|
|
|
3
11
|
This release adds the keep-pushing SDLC loop (`ak-harness loop …`): project config with a per-machine overlay,
|