@autonomos/core 0.7.0 → 0.8.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/dist/index.d.mts +187 -18
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +73 -78
- package/dist/index.mjs.map +1 -1
- package/dist/workflows/protocol-crystallize.md +15 -11
- package/dist/workflows/protocol-issue.md +3 -3
- package/dist/workflows/protocol-reconcile.md +4 -2
- package/dist/workflows/protocol-session.md +3 -2
- package/dist/workflows/protocol-task.md +1 -1
- package/dist/workflows/protocol-workflows.test.ts +42 -3
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -5,7 +5,7 @@ import { z } from "zod";
|
|
|
5
5
|
* Agent Protocol Specification Version (Independent of Package versions)
|
|
6
6
|
* This refers to the schema and behavioral contract version.
|
|
7
7
|
*/
|
|
8
|
-
declare const PROTOCOL_VERSION = "0.
|
|
8
|
+
declare const PROTOCOL_VERSION = "0.8.0-alpha";
|
|
9
9
|
/**
|
|
10
10
|
* Directory name for Autonomos configuration
|
|
11
11
|
*/
|
|
@@ -40,6 +40,32 @@ declare const SPECS_DIR = "specs";
|
|
|
40
40
|
declare const DECISIONS_DIR = "decisions";
|
|
41
41
|
/** Optional project-owned history, never loaded by default. */
|
|
42
42
|
declare const ARCHIVE_DIR = "archive";
|
|
43
|
+
/**
|
|
44
|
+
* Layout version of project-owned records. Absent in a manifest means 1.
|
|
45
|
+
* Format 2: current registries hold open work only, closed records live in
|
|
46
|
+
* `archive/closed/`, and worklogs follow the proportionate shape.
|
|
47
|
+
*/
|
|
48
|
+
declare const ARTIFACT_FORMAT = 2;
|
|
49
|
+
/** Issues registry filename. */
|
|
50
|
+
declare const ISSUES_FILE = "ISSUES.md";
|
|
51
|
+
/** Append-only registries of closed tasks and issues, under the archive. */
|
|
52
|
+
declare const CLOSED_DIR = "closed";
|
|
53
|
+
/** Archive batch that receives worklogs written before artifact format 2. */
|
|
54
|
+
declare const LEGACY_WORKLOGS_DIR = "worklogs-format-1";
|
|
55
|
+
/** Archive index filename. */
|
|
56
|
+
declare const ARCHIVE_INDEX_FILE = "README.md";
|
|
57
|
+
/**
|
|
58
|
+
* Advisory size budgets (bytes or characters) reported by `autonomos status`.
|
|
59
|
+
* They keep startup and close-out context proportionate; they are not parsers.
|
|
60
|
+
*/
|
|
61
|
+
declare const CONTEXT_BUDGETS: {
|
|
62
|
+
readonly rootAgentBytes: 8000;
|
|
63
|
+
readonly localAgentBytes: 4000;
|
|
64
|
+
readonly tasksBytes: 16000;
|
|
65
|
+
readonly issuesBytes: 24000;
|
|
66
|
+
readonly taskEntryChars: 300;
|
|
67
|
+
readonly worklogBytes: 2500;
|
|
68
|
+
};
|
|
43
69
|
//#endregion
|
|
44
70
|
//#region src/schemas/harness-codes.d.ts
|
|
45
71
|
/**
|
|
@@ -59,36 +85,46 @@ declare const InstallerSchema: z.ZodEffects<z.ZodObject<{
|
|
|
59
85
|
targetDir: z.ZodOptional<z.ZodString>;
|
|
60
86
|
skillsDir: z.ZodOptional<z.ZodString>;
|
|
61
87
|
commandsDir: z.ZodOptional<z.ZodString>;
|
|
88
|
+
promptsDir: z.ZodOptional<z.ZodString>;
|
|
62
89
|
globalTargetDir: z.ZodOptional<z.ZodString>;
|
|
63
90
|
fileExtension: z.ZodString;
|
|
91
|
+
_note: z.ZodOptional<z.ZodString>;
|
|
64
92
|
}, "strip", z.ZodTypeAny, {
|
|
65
93
|
fileExtension: string;
|
|
66
94
|
workflowsDir?: string | undefined;
|
|
67
95
|
targetDir?: string | undefined;
|
|
68
96
|
skillsDir?: string | undefined;
|
|
69
97
|
commandsDir?: string | undefined;
|
|
98
|
+
promptsDir?: string | undefined;
|
|
70
99
|
globalTargetDir?: string | undefined;
|
|
100
|
+
_note?: string | undefined;
|
|
71
101
|
}, {
|
|
72
102
|
fileExtension: string;
|
|
73
103
|
workflowsDir?: string | undefined;
|
|
74
104
|
targetDir?: string | undefined;
|
|
75
105
|
skillsDir?: string | undefined;
|
|
76
106
|
commandsDir?: string | undefined;
|
|
107
|
+
promptsDir?: string | undefined;
|
|
77
108
|
globalTargetDir?: string | undefined;
|
|
109
|
+
_note?: string | undefined;
|
|
78
110
|
}>, {
|
|
79
111
|
fileExtension: string;
|
|
80
112
|
workflowsDir?: string | undefined;
|
|
81
113
|
targetDir?: string | undefined;
|
|
82
114
|
skillsDir?: string | undefined;
|
|
83
115
|
commandsDir?: string | undefined;
|
|
116
|
+
promptsDir?: string | undefined;
|
|
84
117
|
globalTargetDir?: string | undefined;
|
|
118
|
+
_note?: string | undefined;
|
|
85
119
|
}, {
|
|
86
120
|
fileExtension: string;
|
|
87
121
|
workflowsDir?: string | undefined;
|
|
88
122
|
targetDir?: string | undefined;
|
|
89
123
|
skillsDir?: string | undefined;
|
|
90
124
|
commandsDir?: string | undefined;
|
|
125
|
+
promptsDir?: string | undefined;
|
|
91
126
|
globalTargetDir?: string | undefined;
|
|
127
|
+
_note?: string | undefined;
|
|
92
128
|
}>;
|
|
93
129
|
/**
|
|
94
130
|
* A single harness entry.
|
|
@@ -101,36 +137,46 @@ declare const HarnessSchema: z.ZodObject<{
|
|
|
101
137
|
targetDir: z.ZodOptional<z.ZodString>;
|
|
102
138
|
skillsDir: z.ZodOptional<z.ZodString>;
|
|
103
139
|
commandsDir: z.ZodOptional<z.ZodString>;
|
|
140
|
+
promptsDir: z.ZodOptional<z.ZodString>;
|
|
104
141
|
globalTargetDir: z.ZodOptional<z.ZodString>;
|
|
105
142
|
fileExtension: z.ZodString;
|
|
143
|
+
_note: z.ZodOptional<z.ZodString>;
|
|
106
144
|
}, "strip", z.ZodTypeAny, {
|
|
107
145
|
fileExtension: string;
|
|
108
146
|
workflowsDir?: string | undefined;
|
|
109
147
|
targetDir?: string | undefined;
|
|
110
148
|
skillsDir?: string | undefined;
|
|
111
149
|
commandsDir?: string | undefined;
|
|
150
|
+
promptsDir?: string | undefined;
|
|
112
151
|
globalTargetDir?: string | undefined;
|
|
152
|
+
_note?: string | undefined;
|
|
113
153
|
}, {
|
|
114
154
|
fileExtension: string;
|
|
115
155
|
workflowsDir?: string | undefined;
|
|
116
156
|
targetDir?: string | undefined;
|
|
117
157
|
skillsDir?: string | undefined;
|
|
118
158
|
commandsDir?: string | undefined;
|
|
159
|
+
promptsDir?: string | undefined;
|
|
119
160
|
globalTargetDir?: string | undefined;
|
|
161
|
+
_note?: string | undefined;
|
|
120
162
|
}>, {
|
|
121
163
|
fileExtension: string;
|
|
122
164
|
workflowsDir?: string | undefined;
|
|
123
165
|
targetDir?: string | undefined;
|
|
124
166
|
skillsDir?: string | undefined;
|
|
125
167
|
commandsDir?: string | undefined;
|
|
168
|
+
promptsDir?: string | undefined;
|
|
126
169
|
globalTargetDir?: string | undefined;
|
|
170
|
+
_note?: string | undefined;
|
|
127
171
|
}, {
|
|
128
172
|
fileExtension: string;
|
|
129
173
|
workflowsDir?: string | undefined;
|
|
130
174
|
targetDir?: string | undefined;
|
|
131
175
|
skillsDir?: string | undefined;
|
|
132
176
|
commandsDir?: string | undefined;
|
|
177
|
+
promptsDir?: string | undefined;
|
|
133
178
|
globalTargetDir?: string | undefined;
|
|
179
|
+
_note?: string | undefined;
|
|
134
180
|
}>;
|
|
135
181
|
}, "strip", z.ZodTypeAny, {
|
|
136
182
|
name: string;
|
|
@@ -141,7 +187,9 @@ declare const HarnessSchema: z.ZodObject<{
|
|
|
141
187
|
targetDir?: string | undefined;
|
|
142
188
|
skillsDir?: string | undefined;
|
|
143
189
|
commandsDir?: string | undefined;
|
|
190
|
+
promptsDir?: string | undefined;
|
|
144
191
|
globalTargetDir?: string | undefined;
|
|
192
|
+
_note?: string | undefined;
|
|
145
193
|
};
|
|
146
194
|
}, {
|
|
147
195
|
name: string;
|
|
@@ -152,7 +200,9 @@ declare const HarnessSchema: z.ZodObject<{
|
|
|
152
200
|
targetDir?: string | undefined;
|
|
153
201
|
skillsDir?: string | undefined;
|
|
154
202
|
commandsDir?: string | undefined;
|
|
203
|
+
promptsDir?: string | undefined;
|
|
155
204
|
globalTargetDir?: string | undefined;
|
|
205
|
+
_note?: string | undefined;
|
|
156
206
|
};
|
|
157
207
|
}>;
|
|
158
208
|
/**
|
|
@@ -167,36 +217,46 @@ declare const HarnessCodesSchema: z.ZodObject<{
|
|
|
167
217
|
targetDir: z.ZodOptional<z.ZodString>;
|
|
168
218
|
skillsDir: z.ZodOptional<z.ZodString>;
|
|
169
219
|
commandsDir: z.ZodOptional<z.ZodString>;
|
|
220
|
+
promptsDir: z.ZodOptional<z.ZodString>;
|
|
170
221
|
globalTargetDir: z.ZodOptional<z.ZodString>;
|
|
171
222
|
fileExtension: z.ZodString;
|
|
223
|
+
_note: z.ZodOptional<z.ZodString>;
|
|
172
224
|
}, "strip", z.ZodTypeAny, {
|
|
173
225
|
fileExtension: string;
|
|
174
226
|
workflowsDir?: string | undefined;
|
|
175
227
|
targetDir?: string | undefined;
|
|
176
228
|
skillsDir?: string | undefined;
|
|
177
229
|
commandsDir?: string | undefined;
|
|
230
|
+
promptsDir?: string | undefined;
|
|
178
231
|
globalTargetDir?: string | undefined;
|
|
232
|
+
_note?: string | undefined;
|
|
179
233
|
}, {
|
|
180
234
|
fileExtension: string;
|
|
181
235
|
workflowsDir?: string | undefined;
|
|
182
236
|
targetDir?: string | undefined;
|
|
183
237
|
skillsDir?: string | undefined;
|
|
184
238
|
commandsDir?: string | undefined;
|
|
239
|
+
promptsDir?: string | undefined;
|
|
185
240
|
globalTargetDir?: string | undefined;
|
|
241
|
+
_note?: string | undefined;
|
|
186
242
|
}>, {
|
|
187
243
|
fileExtension: string;
|
|
188
244
|
workflowsDir?: string | undefined;
|
|
189
245
|
targetDir?: string | undefined;
|
|
190
246
|
skillsDir?: string | undefined;
|
|
191
247
|
commandsDir?: string | undefined;
|
|
248
|
+
promptsDir?: string | undefined;
|
|
192
249
|
globalTargetDir?: string | undefined;
|
|
250
|
+
_note?: string | undefined;
|
|
193
251
|
}, {
|
|
194
252
|
fileExtension: string;
|
|
195
253
|
workflowsDir?: string | undefined;
|
|
196
254
|
targetDir?: string | undefined;
|
|
197
255
|
skillsDir?: string | undefined;
|
|
198
256
|
commandsDir?: string | undefined;
|
|
257
|
+
promptsDir?: string | undefined;
|
|
199
258
|
globalTargetDir?: string | undefined;
|
|
259
|
+
_note?: string | undefined;
|
|
200
260
|
}>;
|
|
201
261
|
}, "strip", z.ZodTypeAny, {
|
|
202
262
|
name: string;
|
|
@@ -207,7 +267,9 @@ declare const HarnessCodesSchema: z.ZodObject<{
|
|
|
207
267
|
targetDir?: string | undefined;
|
|
208
268
|
skillsDir?: string | undefined;
|
|
209
269
|
commandsDir?: string | undefined;
|
|
270
|
+
promptsDir?: string | undefined;
|
|
210
271
|
globalTargetDir?: string | undefined;
|
|
272
|
+
_note?: string | undefined;
|
|
211
273
|
};
|
|
212
274
|
}, {
|
|
213
275
|
name: string;
|
|
@@ -218,7 +280,9 @@ declare const HarnessCodesSchema: z.ZodObject<{
|
|
|
218
280
|
targetDir?: string | undefined;
|
|
219
281
|
skillsDir?: string | undefined;
|
|
220
282
|
commandsDir?: string | undefined;
|
|
283
|
+
promptsDir?: string | undefined;
|
|
221
284
|
globalTargetDir?: string | undefined;
|
|
285
|
+
_note?: string | undefined;
|
|
222
286
|
};
|
|
223
287
|
}>>;
|
|
224
288
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -231,7 +295,9 @@ declare const HarnessCodesSchema: z.ZodObject<{
|
|
|
231
295
|
targetDir?: string | undefined;
|
|
232
296
|
skillsDir?: string | undefined;
|
|
233
297
|
commandsDir?: string | undefined;
|
|
298
|
+
promptsDir?: string | undefined;
|
|
234
299
|
globalTargetDir?: string | undefined;
|
|
300
|
+
_note?: string | undefined;
|
|
235
301
|
};
|
|
236
302
|
}>;
|
|
237
303
|
}, {
|
|
@@ -244,7 +310,9 @@ declare const HarnessCodesSchema: z.ZodObject<{
|
|
|
244
310
|
targetDir?: string | undefined;
|
|
245
311
|
skillsDir?: string | undefined;
|
|
246
312
|
commandsDir?: string | undefined;
|
|
313
|
+
promptsDir?: string | undefined;
|
|
247
314
|
globalTargetDir?: string | undefined;
|
|
315
|
+
_note?: string | undefined;
|
|
248
316
|
};
|
|
249
317
|
}>;
|
|
250
318
|
}>;
|
|
@@ -261,16 +329,19 @@ declare const ManifestSchema: z.ZodObject<{
|
|
|
261
329
|
cliVersion: z.ZodString;
|
|
262
330
|
initializedAt: z.ZodString;
|
|
263
331
|
lastUpdated: z.ZodString;
|
|
332
|
+
artifactFormat: z.ZodOptional<z.ZodNumber>;
|
|
264
333
|
}, "strip", z.ZodTypeAny, {
|
|
265
334
|
protocolVersion: string;
|
|
266
335
|
cliVersion: string;
|
|
267
336
|
initializedAt: string;
|
|
268
337
|
lastUpdated: string;
|
|
338
|
+
artifactFormat?: number | undefined;
|
|
269
339
|
}, {
|
|
270
340
|
protocolVersion: string;
|
|
271
341
|
cliVersion: string;
|
|
272
342
|
initializedAt: string;
|
|
273
343
|
lastUpdated: string;
|
|
344
|
+
artifactFormat?: number | undefined;
|
|
274
345
|
}>;
|
|
275
346
|
type Manifest = z.infer<typeof ManifestSchema>;
|
|
276
347
|
//#endregion
|
|
@@ -354,22 +425,24 @@ declare function generateManifestContent(manifest: Manifest): string;
|
|
|
354
425
|
* Parses manifest.json content into a Manifest object with validation
|
|
355
426
|
*/
|
|
356
427
|
declare function parseManifest(content: string): Manifest;
|
|
428
|
+
/** Artifact format recorded by a manifest (format 1 when absent). */
|
|
429
|
+
declare function manifestArtifactFormat(manifest: Manifest): number;
|
|
357
430
|
//#endregion
|
|
358
431
|
//#region src/templates/protocol.d.ts
|
|
359
432
|
/**
|
|
360
|
-
* The Protocol kernel template — v0.
|
|
433
|
+
* The Protocol kernel template — v0.8
|
|
361
434
|
*
|
|
362
|
-
* Design principles (v0.
|
|
435
|
+
* Design principles (v0.8):
|
|
363
436
|
* - PROTOCOL.md is a compact REFERENCE, not an executable workflow.
|
|
364
437
|
* - All step-by-step instructions live in the workflow files.
|
|
365
438
|
* - No duplication between PROTOCOL.md and workflows.
|
|
366
439
|
* - Short enough that an LLM can re-scan it mid-session without cost.
|
|
367
440
|
*/
|
|
368
|
-
declare const PROTOCOL_TEMPLATE = "# AUTONOMOS PROTOCOL (v0.7.0-alpha)\n\n> This file defines the project's AI workflow contract. The workflows execute it. Do not duplicate workflow steps here.\n\n## Quick Reference\n\n| Action | How |\n| -------------------------------- | ---------------------------------------------------------------------------------- |\n| Start a session | Read the `/session` workflow |\n| Start a task | Read the `/task` workflow |\n| Triage a problem or proposal | Read the optional `/issue` workflow |\n| Adopt existing project knowledge | Read the optional `/adopt` workflow |\n| Reconcile drift and archive history | Read the `/reconcile` workflow |\n| Design or critique a surface | Read the optional `/design` workflow |\n| End a session | Read the `/crystallize` workflow |\n| Get context | Read root `AGENT.md`, then only the selected scope's ancestor chain |\n| Resolve objective | Explicit user request first; otherwise resume `[/]` or pick highest-priority `[ ]` |\n| Log session work | Create `.autonomos/worklogs/YYYY-MM-DD-[TASK_ID].md` |\n\n## File Map\n\n| File | Location | Role |\n| --------------- | -------------------------- | ------------------------------------------------- |\n| `AGENT.md` | Root + any subdirectory | Durable guidance for its directory scope |\n| `TASKS.md` | `.autonomos/TASKS.md` | Current task state and optional Current direction |\n| `ISSUES.md` | `.autonomos/ISSUES.md` | Optional problem, proposal, and question intake |\n| `worklogs/` | `.autonomos/worklogs/` | Historical session evidence, not current guidance |\n| `archive/` | `.autonomos/archive/` | Optional history, searched only when justified |\n| `specs/` | `.autonomos/specs/` | Optional project-owned normative target state |\n| `decisions/` | `.autonomos/decisions/` | Optional project-owned decision records (ADRs) |\n| `DESIGN.md` | Root or target scope | Optional project-owned visual/interaction direction |\n| `PROTOCOL.md` | `.autonomos/PROTOCOL.md` | This file \u2014 read-only reference |\n| `manifest.json` | `.autonomos/manifest.json` | Protocol version metadata |\n\n## Design Direction Boundary\n\n`DESIGN.md` is optional project-owned direction, not a managed protocol\nartifact. Use `/design` when a surface needs direction, critique, or\ndesign-knowledge extraction; keep the project's identity and examples local.\nThe workflow supplies routing and evidence rules, not a universal visual style.\n\n## AGENT.md Format Rules\n\nStore only stable guidance that will affect different future tasks. Keep transient evidence in worklogs and operational explanations in component documentation. Use the narrowest applicable `AGENT.md`; consolidate or replace obsolete entries instead of appending history. Preserve valid subclaims in mixed paragraphs. Check the resulting text for completed-action narratives, task progress and unsupported prohibitions; these do not belong in operating guidance.\n\n**Root `AGENT.md`** \u2014 Must use the structured template (frontmatter + sections: Context, Workflow, Stack, Key Directories, Constraints).\n\n**Local `AGENT.md`** (in any subdirectory) \u2014 Free format. One line is enough if it is clear. What matters: the next session can use it. Example:\n\n```markdown\n# AGENT: packages/core\n\n- Stack: TypeScript, Vitest, tsdown\n- Conventions: exports via src/index.ts, tests co-located (\\*.test.ts)\n- Constraint: template changes require workflow test updates\n```\n\n## Issue, Specification, Decision, and Task Rules\n\nIssues describe evidence, impact, and a desired outcome without choosing implementation; proposed directions remain hypotheses until an approach is accepted. Specifications describe accepted target behavior or requirements that may guide multiple tasks. A decision record (commonly ADR, Architecture Decision Record) captures one technical choice and its rationale. Tasks describe an accepted intervention and completion criteria. Use optional `ISSUES.md`, `specs/`, and `decisions/` only when they provide value; direct, clear changes may become tasks immediately. Link related issues, specs, decisions, and tasks in both directions.\n\n## Specification and Decision Rules\n\n- `.autonomos/specs/` and `.autonomos/decisions/` are optional, project-owned, first-use directories; `init`, `update`, and artifact-integrity checks do not create or overwrite them.\n- Keep one Markdown file per bounded specification or decision. Include status, scope, provenance, acceptance criteria or consequences, and replacement links where relevant; no parser or independent version is required initially.\n- Specification status is `draft`, `accepted`, or `superseded`. Only `accepted` is normative; `superseded` points to its successor. Acceptance does not mean implementation is complete.\n- Decision records use `proposed`, `accepted`, or `superseded`; they preserve rationale and alternatives rather than duplicating the full specification.\n- Keep stable agent operating rules in `AGENT.md`, user/developer reference in `docs/`, execution state in `TASKS.md`, and historical evidence in `worklogs/`.\n- Read only relevant accepted records at task start. Use `/adopt` to extract legacy knowledge; never rewrite historical worklogs, issues, or tasks to create current artifacts.\n\nThe protocol-facing name is **decision record**. **ADR** (Architecture Decision Record) is a common convention for the same kind of document, not a required external standard. Use these lightweight Markdown shapes as a starting point; they are conventions, not parser-enforced schemas:\n\n```markdown\n# SPEC-001 \u2014 Concise target-state title\n\n- Status: draft | accepted | superseded\n- Scope: component, capability, or boundary\n- Provenance: issue, discussion, or source links\n- Related decisions: ADR-001, ...\n- Superseded by: SPEC-002 (when applicable)\n\n## Intent\n\n## Requirements\n\n## Acceptance criteria\n\n## Out of scope\n```\n\n```markdown\n# ADR-001 \u2014 Concise decision title\n\n- Status: proposed | accepted | superseded\n- Scope: component or technical boundary\n- Provenance: issue, task, or investigation links\n- Related specs: SPEC-001, ...\n- Superseded by: ADR-002 (when applicable)\n\n## Context\n\n## Decision\n\n## Alternatives considered\n\n## Consequences\n```\n\nOnly user/project governance accepts a specification or decision as normative. Agents may draft and link records, but must not silently promote them; acceptance is separate from implementation completion.\n\n## Current Context and Archival Lifecycle\n\n- Current context must support ordinary work without archives. Keep applicable guidance, accepted requirements/decisions, unresolved work, dependencies and necessary next actions discoverable. Acceptance is independent of implementation; dated temporary directives remain active until lifted or their stated end condition is met.\n- A completed task or resolved/declined issue is an archival candidate only when its own scope is settled and still-needed outcomes/constraints/references are retained in current context. Explicitly abandoned work may be archived with its reason, without claiming it was completed. A completed child does not satisfy unmet parent acceptance criteria.\n- Record new task completion dates as `Completed: YYYY-MM-DD`; do not infer missing old dates from worklog filenames. Age, a checkbox, absent code or a newer statement alone is not proof of obsolescence.\n- Group archival at coherent completed-work boundaries, not per task or calendar interval. No Sprint object or scheduled maintenance is required. Correct certain in-scope drift proactively during normal work; use `/reconcile` for investigation, consolidation and archival.\n- Before moving history, consolidate current knowledge in its existing narrowest home. Optional `Current direction` in `TASKS.md` explains present aims, recent consequential outcomes and next work; rewrite it rather than append chronology. Keep progress out of `AGENT.md`.\n- Create project-owned `.autonomos/archive/README.md` and meaningful batch directories on first use only. A batch can contain `TASKS.md`, `ISSUES.md`, `worklogs/` and provenance for retired guidance. Group/split batches by useful scope; there is no fixed age, size or mandatory per-record schema.\n- Archive means move, not delete or rewrite conclusions. Preserve historical record content, identifiers and provenance; repair relative paths when necessary. Preserve original mixed-source text when retiring only some claims. Applicable specs/decisions stay current independently of execution records. Extraction into new normative artifacts still uses `/adopt`.\n- The archive index maps batch topics to records, not a second task journal. Search by ID or subject only when a specific question requires history; neither archives nor their entire index are routine startup context. Keep only necessary dependency/outcome pointers in current records, not a permanent stub for every completed task.\n- Archived task and issue IDs remain reserved. Before assigning an ID, search current and archived registries. With a CLI, `readTaskRegistry(root, { history: true })` exposes task references and duplicates; plain Markdown search works without it.\n- Verify exact source text before edits, retained current knowledge, IDs and resolvable references after moves. Do not confuse tool annotations with file content or historical validation with a current observation. Re-read shared files before writing and preserve unrelated concurrent changes. Stop when a second pass yields no deterministic correction.\n- `autonomos status` summarizes the current task registry; `--history` adds separate archived counts and read/collision diagnostics. Archived means historical, not necessarily completed. History uses batch `TASKS.md` files, not arbitrary worklog checklists.\n- Archives are project-owned, like specs and decisions. Initialization, updates and integrity checks neither create empty archives nor overwrite, relocate or judge their contents. Installing a new protocol performs no automatic cleanup. Version-control policy stays project-owned; Git is not required for archival or retrieval.\n\nExample (only files needed by a batch are created):\n\n```text\n.autonomos/\n TASKS.md\n ISSUES.md\n archive/\n README.md\n realtime-experiment-retirement/\n TASKS.md\n ISSUES.md\n worklogs/\n```\n\n## Task Format\n\n`- [Status] **[ID]** Title \\`Priority\\` \\`Complexity\\``\n\n| Status | Priority | Complexity |\n| ----------------- | ------------- | ---------- |\n| `[ ]` Todo | `\uD83D\uDD34 Critical` | `S` Small |\n| `[/]` In Progress | `\uD83D\uDFE0 High` | `M` Medium |\n| `[x]` Done | `\uD83D\uDD35 Medium` | `L` Large |\n| `[!]` Blocked | `\u26AA Low` | `XL` Huge |\n\n## Metadata Rules\n\n- **Language:** English unless AGENT.md says otherwise.\n- **Tone:** Technical, concise, fact-based.\n- **Continuity:** Refer to previous work as \"we\" or \"the project\".\n";
|
|
441
|
+
declare const PROTOCOL_TEMPLATE = "# AUTONOMOS PROTOCOL (v0.8.0-alpha)\n\n> This file defines the project's AI workflow contract. The workflows execute it. Do not duplicate workflow steps here.\n\n## Quick Reference\n\n| Action | How |\n| ----------------------------------- | ---------------------------------------------------------------------------------- |\n| Start a session | Read the `/session` workflow |\n| Start a task | Read the `/task` workflow |\n| Triage a problem or proposal | Read the optional `/issue` workflow |\n| Adopt existing project knowledge | Read the optional `/adopt` workflow |\n| Reconcile drift and archive history | Read the `/reconcile` workflow |\n| Design or critique a surface | Read the optional `/design` workflow |\n| End a session | Read the `/crystallize` workflow |\n| Get context | Read root `AGENT.md`, then only the selected scope's ancestor chain |\n| Resolve objective | Explicit user request first; otherwise resume `[/]` or pick highest-priority `[ ]` |\n| Log session work | Create `.autonomos/worklogs/YYYY-MM-DD-[TASK_ID].md` (shape in `/crystallize`) |\n| Close finished work | `autonomos close <ID>` \u2192 `.autonomos/archive/closed/` |\n| Check context budgets | `autonomos status`; upgrade old records with `autonomos migrate` |\n\n## File Map\n\n| File | Location | Role |\n| --------------- | -------------------------- | --------------------------------------------------------------------- |\n| `AGENT.md` | Root + any subdirectory | Durable guidance for its directory scope |\n| `TASKS.md` | `.autonomos/TASKS.md` | Open tasks and optional Current direction |\n| `ISSUES.md` | `.autonomos/ISSUES.md` | Optional intake: open and accepted issues only |\n| `worklogs/` | `.autonomos/worklogs/` | Historical session evidence, not current guidance |\n| `archive/` | `.autonomos/archive/` | History (`closed/` registries, batches), searched only when justified |\n| `specs/` | `.autonomos/specs/` | Optional project-owned normative target state |\n| `decisions/` | `.autonomos/decisions/` | Optional project-owned decision records (ADRs) |\n| `DESIGN.md` | Root or target scope | Optional project-owned visual/interaction direction |\n| `PROTOCOL.md` | `.autonomos/PROTOCOL.md` | This file \u2014 read-only reference |\n| `manifest.json` | `.autonomos/manifest.json` | Protocol version and artifact format |\n\n## Design Direction Boundary\n\n`DESIGN.md` is optional project-owned direction, not a managed protocol\nartifact. Use `/design` when a surface needs direction, critique, or\ndesign-knowledge extraction; keep the project's identity and examples local.\nThe workflow supplies routing and evidence rules, not a universal visual style.\n\n## AGENT.md Format Rules\n\nStore only stable guidance that will affect different future tasks. Keep transient evidence in worklogs and operational explanations in component documentation. Use the narrowest applicable `AGENT.md`; consolidate or replace obsolete entries instead of appending history. Preserve valid subclaims in mixed paragraphs. Check the resulting text for completed-action narratives, task progress and unsupported prohibitions; these do not belong in operating guidance.\n\n**Root `AGENT.md`** \u2014 Must use the structured template (frontmatter + sections: Context, Workflow, Stack, Key Directories, Constraints).\n\n**Local `AGENT.md`** (in any subdirectory) \u2014 Free format. One line is enough if it is clear. What matters: the next session can use it. Example:\n\n```markdown\n# AGENT: packages/core\n\n- Stack: TypeScript, Vitest, tsdown\n- Conventions: exports via src/index.ts, tests co-located (\\*.test.ts)\n- Constraint: template changes require workflow test updates\n```\n\n## Issue, Specification, Decision, and Task Rules\n\nIssues describe evidence, impact, and a desired outcome without choosing implementation; proposed directions remain hypotheses until an approach is accepted. Specifications describe accepted target behavior or requirements that may guide multiple tasks. A decision record (commonly ADR, Architecture Decision Record) captures one technical choice and its rationale. Tasks describe an accepted intervention and completion criteria. Use optional `ISSUES.md`, `specs/`, and `decisions/` only when they provide value; direct, clear changes may become tasks immediately. Link related issues, specs, decisions, and tasks in both directions.\n\n## Specification and Decision Rules\n\n- `.autonomos/specs/` and `.autonomos/decisions/` are optional, project-owned, first-use directories; `init`, `update`, and artifact-integrity checks do not create or overwrite them.\n- Keep one Markdown file per bounded specification or decision. Include status, scope, provenance, acceptance criteria or consequences, and replacement links where relevant; no parser or independent version is required initially.\n- Specification status is `draft`, `accepted`, or `superseded`. Only `accepted` is normative; `superseded` points to its successor. Acceptance does not mean implementation is complete.\n- Decision records use `proposed`, `accepted`, or `superseded`; they preserve rationale and alternatives rather than duplicating the full specification.\n- Keep stable agent operating rules in `AGENT.md`, user/developer reference in `docs/`, execution state in `TASKS.md`, and historical evidence in `worklogs/`.\n- Read only relevant accepted records at task start. Use `/adopt` to extract legacy knowledge; never rewrite historical worklogs, issues, or tasks to create current artifacts.\n\nThe protocol-facing name is **decision record**. **ADR** (Architecture Decision Record) is a common convention for the same kind of document, not a required external standard. Use these lightweight Markdown shapes as a starting point; they are conventions, not parser-enforced schemas:\n\n```markdown\n# SPEC-001 \u2014 Concise target-state title\n\n- Status: draft | accepted | superseded\n- Scope: component, capability, or boundary\n- Provenance: issue, discussion, or source links\n- Related decisions: ADR-001, ...\n- Superseded by: SPEC-002 (when applicable)\n\n## Intent\n\n## Requirements\n\n## Acceptance criteria\n\n## Out of scope\n```\n\n```markdown\n# ADR-001 \u2014 Concise decision title\n\n- Status: proposed | accepted | superseded\n- Scope: component or technical boundary\n- Provenance: issue, task, or investigation links\n- Related specs: SPEC-001, ...\n- Superseded by: ADR-002 (when applicable)\n\n## Context\n\n## Decision\n\n## Alternatives considered\n\n## Consequences\n```\n\nOnly user/project governance accepts a specification or decision as normative. Agents may draft and link records, but must not silently promote them; acceptance is separate from implementation completion.\n\n## Current Context and Archival Lifecycle\n\n- Current context must support ordinary work without archives, and its size follows open work, not project age. Keep applicable guidance, accepted requirements/decisions, unresolved work, dependencies and necessary next actions discoverable. Acceptance is independent of implementation; dated temporary directives remain active until lifted or their stated end condition is met.\n- `TASKS.md` holds `[ ]`, `[/]` and `[!]` tasks; `ISSUES.md` holds open and accepted issues. When work closes, move its record in the same session to the append-only `.autonomos/archive/closed/TASKS.md` or `ISSUES.md` (`autonomos close <ID>`, or by hand). Unfinished work may be closed only as abandoned, with its reason. A completed child does not satisfy unmet parent acceptance criteria; a parent with open children stays current.\n- Record new task completion dates as `Completed: YYYY-MM-DD`; do not infer missing old dates. Age, a checkbox, absent code or a newer statement alone is not proof of obsolescence.\n- Before moving history, consolidate still-needed knowledge in its existing narrowest home. Optional `Current direction` in `TASKS.md` explains present aims, recent consequential outcomes and next work; rewrite it rather than append chronology. Keep progress out of `AGENT.md`.\n- Other history may form named batches under `.autonomos/archive/<batch>/` via `/reconcile`; create `archive/README.md` and batch directories on first use only. The index maps topics to records; it is not a second journal.\n- Archive means move, not delete or rewrite conclusions. Preserve historical record content, identifiers and provenance; repair relative paths when necessary. Applicable specs/decisions stay current independently of execution records. Extraction into new normative artifacts still uses `/adopt`.\n- Archived task and issue IDs remain reserved. Before assigning an ID, search current and archived registries (`autonomos status --history` reports duplicates).\n- Verify exact source text before edits and resolvable references after moves. Re-read shared files before writing and preserve unrelated concurrent changes.\n\n## Context Budgets\n\nAdvisory limits reported by `autonomos status` (`--strict` makes them fail): root `AGENT.md` 8,000 bytes, local `AGENT.md` 4,000 bytes, `TASKS.md` 16 KB, `ISSUES.md` 24 KB, one task entry 300 characters, one worklog 2,500 bytes, and no closed record in current registries. Over budget, consolidate or move knowledge to its narrowest home before adding more. Root `AGENT.md` admits only guidance that applies to most tasks in the project.\n\n## Artifact Format and Migration\n\n`manifest.json` records `artifactFormat` (absent means 1); this protocol defines format 2. Installing a new protocol performs no automatic cleanup: `autonomos update` only replaces managed artifacts. `autonomos migrate` is the explicit, content-preserving upgrade: it closes finished records, moves pre-format-2 worklogs to `.autonomos/archive/worklogs-format-1/` so they stop serving as examples, repairs references and records the format. Run it with `--dry-run` first on a clean working tree, then resolve the remaining `status` findings with `/reconcile`.\n\n## Task Format\n\nOne line per task: `` - [Status] **[ID]** Title `Priority` `Complexity` `` plus, when useful, `Completed: YYYY-MM-DD`, a short note and links to its issue or worklog. Evidence, measurements and progress belong in the worklog, not the task entry.\n\n| Status | Priority | Complexity |\n| ----------------- | ------------- | ---------- |\n| `[ ]` Todo | `\uD83D\uDD34 Critical` | `S` Small |\n| `[/]` In Progress | `\uD83D\uDFE0 High` | `M` Medium |\n| `[x]` Done | `\uD83D\uDD35 Medium` | `L` Large |\n| `[!]` Blocked | `\u26AA Low` | `XL` Huge |\n\n## Metadata Rules\n\n- **Language:** English unless AGENT.md says otherwise.\n- **Tone:** Technical, concise, fact-based.\n- **Continuity:** Refer to previous work as \"we\" or \"the project\".\n";
|
|
369
442
|
/**
|
|
370
443
|
* @deprecated Use PROTOCOL_TEMPLATE instead
|
|
371
444
|
*/
|
|
372
|
-
declare const PROTOCOL_TEMPLATE_V2026_1 = "# AUTONOMOS PROTOCOL (v0.7.0-alpha)\n\n> This file defines the project's AI workflow contract. The workflows execute it. Do not duplicate workflow steps here.\n\n## Quick Reference\n\n| Action | How |\n| -------------------------------- | ---------------------------------------------------------------------------------- |\n| Start a session | Read the `/session` workflow |\n| Start a task | Read the `/task` workflow |\n| Triage a problem or proposal | Read the optional `/issue` workflow |\n| Adopt existing project knowledge | Read the optional `/adopt` workflow |\n| Reconcile drift and archive history | Read the `/reconcile` workflow |\n| Design or critique a surface | Read the optional `/design` workflow |\n| End a session | Read the `/crystallize` workflow |\n| Get context | Read root `AGENT.md`, then only the selected scope's ancestor chain |\n| Resolve objective | Explicit user request first; otherwise resume `[/]` or pick highest-priority `[ ]` |\n| Log session work | Create `.autonomos/worklogs/YYYY-MM-DD-[TASK_ID].md` |\n\n## File Map\n\n| File | Location | Role |\n| --------------- | -------------------------- | ------------------------------------------------- |\n| `AGENT.md` | Root + any subdirectory | Durable guidance for its directory scope |\n| `TASKS.md` | `.autonomos/TASKS.md` | Current task state and optional Current direction |\n| `ISSUES.md` | `.autonomos/ISSUES.md` | Optional problem, proposal, and question intake |\n| `worklogs/` | `.autonomos/worklogs/` | Historical session evidence, not current guidance |\n| `archive/` | `.autonomos/archive/` | Optional history, searched only when justified |\n| `specs/` | `.autonomos/specs/` | Optional project-owned normative target state |\n| `decisions/` | `.autonomos/decisions/` | Optional project-owned decision records (ADRs) |\n| `DESIGN.md` | Root or target scope | Optional project-owned visual/interaction direction |\n| `PROTOCOL.md` | `.autonomos/PROTOCOL.md` | This file \u2014 read-only reference |\n| `manifest.json` | `.autonomos/manifest.json` | Protocol version metadata |\n\n## Design Direction Boundary\n\n`DESIGN.md` is optional project-owned direction, not a managed protocol\nartifact. Use `/design` when a surface needs direction, critique, or\ndesign-knowledge extraction; keep the project's identity and examples local.\nThe workflow supplies routing and evidence rules, not a universal visual style.\n\n## AGENT.md Format Rules\n\nStore only stable guidance that will affect different future tasks. Keep transient evidence in worklogs and operational explanations in component documentation. Use the narrowest applicable `AGENT.md`; consolidate or replace obsolete entries instead of appending history. Preserve valid subclaims in mixed paragraphs. Check the resulting text for completed-action narratives, task progress and unsupported prohibitions; these do not belong in operating guidance.\n\n**Root `AGENT.md`** \u2014 Must use the structured template (frontmatter + sections: Context, Workflow, Stack, Key Directories, Constraints).\n\n**Local `AGENT.md`** (in any subdirectory) \u2014 Free format. One line is enough if it is clear. What matters: the next session can use it. Example:\n\n```markdown\n# AGENT: packages/core\n\n- Stack: TypeScript, Vitest, tsdown\n- Conventions: exports via src/index.ts, tests co-located (\\*.test.ts)\n- Constraint: template changes require workflow test updates\n```\n\n## Issue, Specification, Decision, and Task Rules\n\nIssues describe evidence, impact, and a desired outcome without choosing implementation; proposed directions remain hypotheses until an approach is accepted. Specifications describe accepted target behavior or requirements that may guide multiple tasks. A decision record (commonly ADR, Architecture Decision Record) captures one technical choice and its rationale. Tasks describe an accepted intervention and completion criteria. Use optional `ISSUES.md`, `specs/`, and `decisions/` only when they provide value; direct, clear changes may become tasks immediately. Link related issues, specs, decisions, and tasks in both directions.\n\n## Specification and Decision Rules\n\n- `.autonomos/specs/` and `.autonomos/decisions/` are optional, project-owned, first-use directories; `init`, `update`, and artifact-integrity checks do not create or overwrite them.\n- Keep one Markdown file per bounded specification or decision. Include status, scope, provenance, acceptance criteria or consequences, and replacement links where relevant; no parser or independent version is required initially.\n- Specification status is `draft`, `accepted`, or `superseded`. Only `accepted` is normative; `superseded` points to its successor. Acceptance does not mean implementation is complete.\n- Decision records use `proposed`, `accepted`, or `superseded`; they preserve rationale and alternatives rather than duplicating the full specification.\n- Keep stable agent operating rules in `AGENT.md`, user/developer reference in `docs/`, execution state in `TASKS.md`, and historical evidence in `worklogs/`.\n- Read only relevant accepted records at task start. Use `/adopt` to extract legacy knowledge; never rewrite historical worklogs, issues, or tasks to create current artifacts.\n\nThe protocol-facing name is **decision record**. **ADR** (Architecture Decision Record) is a common convention for the same kind of document, not a required external standard. Use these lightweight Markdown shapes as a starting point; they are conventions, not parser-enforced schemas:\n\n```markdown\n# SPEC-001 \u2014 Concise target-state title\n\n- Status: draft | accepted | superseded\n- Scope: component, capability, or boundary\n- Provenance: issue, discussion, or source links\n- Related decisions: ADR-001, ...\n- Superseded by: SPEC-002 (when applicable)\n\n## Intent\n\n## Requirements\n\n## Acceptance criteria\n\n## Out of scope\n```\n\n```markdown\n# ADR-001 \u2014 Concise decision title\n\n- Status: proposed | accepted | superseded\n- Scope: component or technical boundary\n- Provenance: issue, task, or investigation links\n- Related specs: SPEC-001, ...\n- Superseded by: ADR-002 (when applicable)\n\n## Context\n\n## Decision\n\n## Alternatives considered\n\n## Consequences\n```\n\nOnly user/project governance accepts a specification or decision as normative. Agents may draft and link records, but must not silently promote them; acceptance is separate from implementation completion.\n\n## Current Context and Archival Lifecycle\n\n- Current context must support ordinary work without archives. Keep applicable guidance, accepted requirements/decisions, unresolved work, dependencies and necessary next actions discoverable. Acceptance is independent of implementation; dated temporary directives remain active until lifted or their stated end condition is met.\n- A completed task or resolved/declined issue is an archival candidate only when its own scope is settled and still-needed outcomes/constraints/references are retained in current context. Explicitly abandoned work may be archived with its reason, without claiming it was completed. A completed child does not satisfy unmet parent acceptance criteria.\n- Record new task completion dates as `Completed: YYYY-MM-DD`; do not infer missing old dates from worklog filenames. Age, a checkbox, absent code or a newer statement alone is not proof of obsolescence.\n- Group archival at coherent completed-work boundaries, not per task or calendar interval. No Sprint object or scheduled maintenance is required. Correct certain in-scope drift proactively during normal work; use `/reconcile` for investigation, consolidation and archival.\n- Before moving history, consolidate current knowledge in its existing narrowest home. Optional `Current direction` in `TASKS.md` explains present aims, recent consequential outcomes and next work; rewrite it rather than append chronology. Keep progress out of `AGENT.md`.\n- Create project-owned `.autonomos/archive/README.md` and meaningful batch directories on first use only. A batch can contain `TASKS.md`, `ISSUES.md`, `worklogs/` and provenance for retired guidance. Group/split batches by useful scope; there is no fixed age, size or mandatory per-record schema.\n- Archive means move, not delete or rewrite conclusions. Preserve historical record content, identifiers and provenance; repair relative paths when necessary. Preserve original mixed-source text when retiring only some claims. Applicable specs/decisions stay current independently of execution records. Extraction into new normative artifacts still uses `/adopt`.\n- The archive index maps batch topics to records, not a second task journal. Search by ID or subject only when a specific question requires history; neither archives nor their entire index are routine startup context. Keep only necessary dependency/outcome pointers in current records, not a permanent stub for every completed task.\n- Archived task and issue IDs remain reserved. Before assigning an ID, search current and archived registries. With a CLI, `readTaskRegistry(root, { history: true })` exposes task references and duplicates; plain Markdown search works without it.\n- Verify exact source text before edits, retained current knowledge, IDs and resolvable references after moves. Do not confuse tool annotations with file content or historical validation with a current observation. Re-read shared files before writing and preserve unrelated concurrent changes. Stop when a second pass yields no deterministic correction.\n- `autonomos status` summarizes the current task registry; `--history` adds separate archived counts and read/collision diagnostics. Archived means historical, not necessarily completed. History uses batch `TASKS.md` files, not arbitrary worklog checklists.\n- Archives are project-owned, like specs and decisions. Initialization, updates and integrity checks neither create empty archives nor overwrite, relocate or judge their contents. Installing a new protocol performs no automatic cleanup. Version-control policy stays project-owned; Git is not required for archival or retrieval.\n\nExample (only files needed by a batch are created):\n\n```text\n.autonomos/\n TASKS.md\n ISSUES.md\n archive/\n README.md\n realtime-experiment-retirement/\n TASKS.md\n ISSUES.md\n worklogs/\n```\n\n## Task Format\n\n`- [Status] **[ID]** Title \\`Priority\\` \\`Complexity\\``\n\n| Status | Priority | Complexity |\n| ----------------- | ------------- | ---------- |\n| `[ ]` Todo | `\uD83D\uDD34 Critical` | `S` Small |\n| `[/]` In Progress | `\uD83D\uDFE0 High` | `M` Medium |\n| `[x]` Done | `\uD83D\uDD35 Medium` | `L` Large |\n| `[!]` Blocked | `\u26AA Low` | `XL` Huge |\n\n## Metadata Rules\n\n- **Language:** English unless AGENT.md says otherwise.\n- **Tone:** Technical, concise, fact-based.\n- **Continuity:** Refer to previous work as \"we\" or \"the project\".\n";
|
|
445
|
+
declare const PROTOCOL_TEMPLATE_V2026_1 = "# AUTONOMOS PROTOCOL (v0.8.0-alpha)\n\n> This file defines the project's AI workflow contract. The workflows execute it. Do not duplicate workflow steps here.\n\n## Quick Reference\n\n| Action | How |\n| ----------------------------------- | ---------------------------------------------------------------------------------- |\n| Start a session | Read the `/session` workflow |\n| Start a task | Read the `/task` workflow |\n| Triage a problem or proposal | Read the optional `/issue` workflow |\n| Adopt existing project knowledge | Read the optional `/adopt` workflow |\n| Reconcile drift and archive history | Read the `/reconcile` workflow |\n| Design or critique a surface | Read the optional `/design` workflow |\n| End a session | Read the `/crystallize` workflow |\n| Get context | Read root `AGENT.md`, then only the selected scope's ancestor chain |\n| Resolve objective | Explicit user request first; otherwise resume `[/]` or pick highest-priority `[ ]` |\n| Log session work | Create `.autonomos/worklogs/YYYY-MM-DD-[TASK_ID].md` (shape in `/crystallize`) |\n| Close finished work | `autonomos close <ID>` \u2192 `.autonomos/archive/closed/` |\n| Check context budgets | `autonomos status`; upgrade old records with `autonomos migrate` |\n\n## File Map\n\n| File | Location | Role |\n| --------------- | -------------------------- | --------------------------------------------------------------------- |\n| `AGENT.md` | Root + any subdirectory | Durable guidance for its directory scope |\n| `TASKS.md` | `.autonomos/TASKS.md` | Open tasks and optional Current direction |\n| `ISSUES.md` | `.autonomos/ISSUES.md` | Optional intake: open and accepted issues only |\n| `worklogs/` | `.autonomos/worklogs/` | Historical session evidence, not current guidance |\n| `archive/` | `.autonomos/archive/` | History (`closed/` registries, batches), searched only when justified |\n| `specs/` | `.autonomos/specs/` | Optional project-owned normative target state |\n| `decisions/` | `.autonomos/decisions/` | Optional project-owned decision records (ADRs) |\n| `DESIGN.md` | Root or target scope | Optional project-owned visual/interaction direction |\n| `PROTOCOL.md` | `.autonomos/PROTOCOL.md` | This file \u2014 read-only reference |\n| `manifest.json` | `.autonomos/manifest.json` | Protocol version and artifact format |\n\n## Design Direction Boundary\n\n`DESIGN.md` is optional project-owned direction, not a managed protocol\nartifact. Use `/design` when a surface needs direction, critique, or\ndesign-knowledge extraction; keep the project's identity and examples local.\nThe workflow supplies routing and evidence rules, not a universal visual style.\n\n## AGENT.md Format Rules\n\nStore only stable guidance that will affect different future tasks. Keep transient evidence in worklogs and operational explanations in component documentation. Use the narrowest applicable `AGENT.md`; consolidate or replace obsolete entries instead of appending history. Preserve valid subclaims in mixed paragraphs. Check the resulting text for completed-action narratives, task progress and unsupported prohibitions; these do not belong in operating guidance.\n\n**Root `AGENT.md`** \u2014 Must use the structured template (frontmatter + sections: Context, Workflow, Stack, Key Directories, Constraints).\n\n**Local `AGENT.md`** (in any subdirectory) \u2014 Free format. One line is enough if it is clear. What matters: the next session can use it. Example:\n\n```markdown\n# AGENT: packages/core\n\n- Stack: TypeScript, Vitest, tsdown\n- Conventions: exports via src/index.ts, tests co-located (\\*.test.ts)\n- Constraint: template changes require workflow test updates\n```\n\n## Issue, Specification, Decision, and Task Rules\n\nIssues describe evidence, impact, and a desired outcome without choosing implementation; proposed directions remain hypotheses until an approach is accepted. Specifications describe accepted target behavior or requirements that may guide multiple tasks. A decision record (commonly ADR, Architecture Decision Record) captures one technical choice and its rationale. Tasks describe an accepted intervention and completion criteria. Use optional `ISSUES.md`, `specs/`, and `decisions/` only when they provide value; direct, clear changes may become tasks immediately. Link related issues, specs, decisions, and tasks in both directions.\n\n## Specification and Decision Rules\n\n- `.autonomos/specs/` and `.autonomos/decisions/` are optional, project-owned, first-use directories; `init`, `update`, and artifact-integrity checks do not create or overwrite them.\n- Keep one Markdown file per bounded specification or decision. Include status, scope, provenance, acceptance criteria or consequences, and replacement links where relevant; no parser or independent version is required initially.\n- Specification status is `draft`, `accepted`, or `superseded`. Only `accepted` is normative; `superseded` points to its successor. Acceptance does not mean implementation is complete.\n- Decision records use `proposed`, `accepted`, or `superseded`; they preserve rationale and alternatives rather than duplicating the full specification.\n- Keep stable agent operating rules in `AGENT.md`, user/developer reference in `docs/`, execution state in `TASKS.md`, and historical evidence in `worklogs/`.\n- Read only relevant accepted records at task start. Use `/adopt` to extract legacy knowledge; never rewrite historical worklogs, issues, or tasks to create current artifacts.\n\nThe protocol-facing name is **decision record**. **ADR** (Architecture Decision Record) is a common convention for the same kind of document, not a required external standard. Use these lightweight Markdown shapes as a starting point; they are conventions, not parser-enforced schemas:\n\n```markdown\n# SPEC-001 \u2014 Concise target-state title\n\n- Status: draft | accepted | superseded\n- Scope: component, capability, or boundary\n- Provenance: issue, discussion, or source links\n- Related decisions: ADR-001, ...\n- Superseded by: SPEC-002 (when applicable)\n\n## Intent\n\n## Requirements\n\n## Acceptance criteria\n\n## Out of scope\n```\n\n```markdown\n# ADR-001 \u2014 Concise decision title\n\n- Status: proposed | accepted | superseded\n- Scope: component or technical boundary\n- Provenance: issue, task, or investigation links\n- Related specs: SPEC-001, ...\n- Superseded by: ADR-002 (when applicable)\n\n## Context\n\n## Decision\n\n## Alternatives considered\n\n## Consequences\n```\n\nOnly user/project governance accepts a specification or decision as normative. Agents may draft and link records, but must not silently promote them; acceptance is separate from implementation completion.\n\n## Current Context and Archival Lifecycle\n\n- Current context must support ordinary work without archives, and its size follows open work, not project age. Keep applicable guidance, accepted requirements/decisions, unresolved work, dependencies and necessary next actions discoverable. Acceptance is independent of implementation; dated temporary directives remain active until lifted or their stated end condition is met.\n- `TASKS.md` holds `[ ]`, `[/]` and `[!]` tasks; `ISSUES.md` holds open and accepted issues. When work closes, move its record in the same session to the append-only `.autonomos/archive/closed/TASKS.md` or `ISSUES.md` (`autonomos close <ID>`, or by hand). Unfinished work may be closed only as abandoned, with its reason. A completed child does not satisfy unmet parent acceptance criteria; a parent with open children stays current.\n- Record new task completion dates as `Completed: YYYY-MM-DD`; do not infer missing old dates. Age, a checkbox, absent code or a newer statement alone is not proof of obsolescence.\n- Before moving history, consolidate still-needed knowledge in its existing narrowest home. Optional `Current direction` in `TASKS.md` explains present aims, recent consequential outcomes and next work; rewrite it rather than append chronology. Keep progress out of `AGENT.md`.\n- Other history may form named batches under `.autonomos/archive/<batch>/` via `/reconcile`; create `archive/README.md` and batch directories on first use only. The index maps topics to records; it is not a second journal.\n- Archive means move, not delete or rewrite conclusions. Preserve historical record content, identifiers and provenance; repair relative paths when necessary. Applicable specs/decisions stay current independently of execution records. Extraction into new normative artifacts still uses `/adopt`.\n- Archived task and issue IDs remain reserved. Before assigning an ID, search current and archived registries (`autonomos status --history` reports duplicates).\n- Verify exact source text before edits and resolvable references after moves. Re-read shared files before writing and preserve unrelated concurrent changes.\n\n## Context Budgets\n\nAdvisory limits reported by `autonomos status` (`--strict` makes them fail): root `AGENT.md` 8,000 bytes, local `AGENT.md` 4,000 bytes, `TASKS.md` 16 KB, `ISSUES.md` 24 KB, one task entry 300 characters, one worklog 2,500 bytes, and no closed record in current registries. Over budget, consolidate or move knowledge to its narrowest home before adding more. Root `AGENT.md` admits only guidance that applies to most tasks in the project.\n\n## Artifact Format and Migration\n\n`manifest.json` records `artifactFormat` (absent means 1); this protocol defines format 2. Installing a new protocol performs no automatic cleanup: `autonomos update` only replaces managed artifacts. `autonomos migrate` is the explicit, content-preserving upgrade: it closes finished records, moves pre-format-2 worklogs to `.autonomos/archive/worklogs-format-1/` so they stop serving as examples, repairs references and records the format. Run it with `--dry-run` first on a clean working tree, then resolve the remaining `status` findings with `/reconcile`.\n\n## Task Format\n\nOne line per task: `` - [Status] **[ID]** Title `Priority` `Complexity` `` plus, when useful, `Completed: YYYY-MM-DD`, a short note and links to its issue or worklog. Evidence, measurements and progress belong in the worklog, not the task entry.\n\n| Status | Priority | Complexity |\n| ----------------- | ------------- | ---------- |\n| `[ ]` Todo | `\uD83D\uDD34 Critical` | `S` Small |\n| `[/]` In Progress | `\uD83D\uDFE0 High` | `M` Medium |\n| `[x]` Done | `\uD83D\uDD35 Medium` | `L` Large |\n| `[!]` Blocked | `\u26AA Low` | `XL` Huge |\n\n## Metadata Rules\n\n- **Language:** English unless AGENT.md says otherwise.\n- **Tone:** Technical, concise, fact-based.\n- **Continuity:** Refer to previous work as \"we\" or \"the project\".\n";
|
|
373
446
|
//#endregion
|
|
374
447
|
//#region src/templates/tasks.d.ts
|
|
375
448
|
/**
|
|
@@ -380,17 +453,19 @@ declare const TASKS_TEMPLATE = "# PROJECT TASKS & ROADMAP\n\n> **LEGEND**\n> **P
|
|
|
380
453
|
//#region src/templates/worklog.d.ts
|
|
381
454
|
interface WorklogOptions {
|
|
382
455
|
taskId: string;
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
456
|
+
title: string;
|
|
457
|
+
/** 1–3 lines: what is now true. */
|
|
458
|
+
outcome: string;
|
|
459
|
+
/** Non-obvious choices with their reason. */
|
|
460
|
+
decisions?: string[];
|
|
461
|
+
/** Checks actually run, `command → result`. */
|
|
462
|
+
validation?: string[];
|
|
463
|
+
/** Limits and follow-ups. */
|
|
464
|
+
open?: string[];
|
|
391
465
|
}
|
|
392
466
|
/**
|
|
393
|
-
* Generate a
|
|
467
|
+
* Generate a proportionate worklog (artifact format 2): only what a future
|
|
468
|
+
* agent cannot recover from code, git, tests or other records.
|
|
394
469
|
*/
|
|
395
470
|
declare function generateWorklogContent(options: WorklogOptions): string;
|
|
396
471
|
/**
|
|
@@ -530,6 +605,7 @@ declare function listPreferredHarnesses(): Array<{
|
|
|
530
605
|
id: string;
|
|
531
606
|
harness: Harness;
|
|
532
607
|
}>;
|
|
608
|
+
type TargetKind = 'flat' | 'skill';
|
|
533
609
|
/**
|
|
534
610
|
* A resolved target directory where workflow files will be written.
|
|
535
611
|
* One per unique path, with the list of harness ids that share it.
|
|
@@ -539,15 +615,17 @@ interface ResolvedTarget {
|
|
|
539
615
|
path: string;
|
|
540
616
|
/** File extension to use (e.g. ".md", ".agent.md") */
|
|
541
617
|
fileExtension: string;
|
|
618
|
+
/** Whether target receives flat files (e.g. session.md) or skill bundles (e.g. protocol-session/SKILL.md) */
|
|
619
|
+
kind: TargetKind;
|
|
542
620
|
/** Ids of the harnesses that will read from this directory */
|
|
543
621
|
usedBy: string[];
|
|
544
622
|
}
|
|
545
623
|
/**
|
|
546
624
|
* Resolve the unique target directories for a set of harness ids.
|
|
547
625
|
*
|
|
548
|
-
* Harnesses that share the same `skillsDir` (e.g. Codex, OpenCode, KiloCode
|
|
549
|
-
* all use `.agents/skills/`) are deduplicated:
|
|
550
|
-
* in the output, with all the harness ids listed in `usedBy`.
|
|
626
|
+
* Harnesses that share the same `skillsDir` (e.g. Codex, OpenCode, KiloCode,
|
|
627
|
+
* Antigravity, Claude Code all use `.agents/skills/`) are deduplicated:
|
|
628
|
+
* the directory appears once in the output, with all the harness ids listed in `usedBy`.
|
|
551
629
|
*
|
|
552
630
|
* The `path` is returned relative to the project root (caller is responsible
|
|
553
631
|
* for joining with the project cwd).
|
|
@@ -559,5 +637,96 @@ declare function resolveTargets(harnessIds: string[], cwd?: string): ResolvedTar
|
|
|
559
637
|
*/
|
|
560
638
|
declare function getRawHarnessCodes(): HarnessCodes;
|
|
561
639
|
//#endregion
|
|
562
|
-
|
|
640
|
+
//#region src/records/budgets.d.ts
|
|
641
|
+
type BudgetFindingCode = 'format-outdated' | 'closed-tasks-in-current' | 'closed-issues-in-current' | 'tasks-size' | 'issues-size' | 'task-entry-length' | 'root-agent-size' | 'local-agent-size' | 'worklog-size';
|
|
642
|
+
interface BudgetFinding {
|
|
643
|
+
code: BudgetFindingCode;
|
|
644
|
+
/** Project-relative path the finding concerns. */
|
|
645
|
+
path: string;
|
|
646
|
+
message: string;
|
|
647
|
+
/** Offending IDs or files, largest first, when relevant. */
|
|
648
|
+
items?: string[];
|
|
649
|
+
}
|
|
650
|
+
type ContextBudgets = { [K in keyof typeof CONTEXT_BUDGETS]: number };
|
|
651
|
+
/** Find AGENT.md files below root, skipping hidden, dependency and build directories. */
|
|
652
|
+
declare function findAgentFilePaths(root: string): string[];
|
|
653
|
+
/**
|
|
654
|
+
* Report where current context exceeds the protocol's proportionate budgets.
|
|
655
|
+
* Findings are advisory; agents resolve them through `/reconcile` or `migrate`.
|
|
656
|
+
*/
|
|
657
|
+
declare function checkContextBudgets(root: string, options?: {
|
|
658
|
+
artifactFormat?: number;
|
|
659
|
+
budgets?: Partial<ContextBudgets>;
|
|
660
|
+
}): BudgetFinding[];
|
|
661
|
+
//#endregion
|
|
662
|
+
//#region src/records/links.d.ts
|
|
663
|
+
/** Map an absolute path to its new location, or return it unchanged. */
|
|
664
|
+
type PathMapper = (absolutePath: string) => string;
|
|
665
|
+
declare function prefixMapper(from: string, to: string): PathMapper;
|
|
666
|
+
declare function composeMappers(...mappers: PathMapper[]): PathMapper;
|
|
667
|
+
/**
|
|
668
|
+
* Rewrite relative Markdown link targets of a document that moves from
|
|
669
|
+
* `oldDir` to `newDir`, also following targets that moved (`mapPath`).
|
|
670
|
+
* Targets that resolve to the same file are left byte-identical.
|
|
671
|
+
*/
|
|
672
|
+
declare function relocateLinks(markdown: string, oldDir: string, newDir: string, mapPath?: PathMapper): string;
|
|
673
|
+
/**
|
|
674
|
+
* Rewrite plain project-root-relative mentions of moved files, such as
|
|
675
|
+
* `_See: .autonomos/worklogs/2026-01-01-X.md_`, outside of link targets.
|
|
676
|
+
*/
|
|
677
|
+
declare function relocateRootMentions(markdown: string, fromPrefix: string, toPrefix: string, names: ReadonlySet<string>): string;
|
|
678
|
+
//#endregion
|
|
679
|
+
//#region src/records/registry-edit.d.ts
|
|
680
|
+
/**
|
|
681
|
+
* Pure text operations on TASKS.md / ISSUES.md used by `close`, `migrate`
|
|
682
|
+
* and budget checks. They never rewrite the content of a moved record.
|
|
683
|
+
*/
|
|
684
|
+
/** Issue statuses that mean the issue no longer needs current attention. */
|
|
685
|
+
declare const CLOSED_ISSUE_STATUSES: string[];
|
|
686
|
+
interface TaskEntry {
|
|
687
|
+
id: string;
|
|
688
|
+
status: ' ' | 'x' | '/' | '!';
|
|
689
|
+
/** 0-based index of the first line of the entry. */
|
|
690
|
+
start: number;
|
|
691
|
+
/** 0-based exclusive end line index. */
|
|
692
|
+
end: number;
|
|
693
|
+
/** Heading path enclosing the entry, outermost first (title excluded). */
|
|
694
|
+
headings: string[];
|
|
695
|
+
text: string;
|
|
696
|
+
}
|
|
697
|
+
interface IssueEntry {
|
|
698
|
+
id: string;
|
|
699
|
+
status: string;
|
|
700
|
+
start: number;
|
|
701
|
+
end: number;
|
|
702
|
+
text: string;
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* Parse task entries: a task line plus following lines indented deeper than it
|
|
706
|
+
* (continuations and sub-bullets). Nested tasks are returned as their own entries
|
|
707
|
+
* and are also part of their parent's text.
|
|
708
|
+
*/
|
|
709
|
+
declare function parseTaskEntries(markdown: string): TaskEntry[];
|
|
710
|
+
declare function parseIssueEntries(markdown: string): IssueEntry[];
|
|
711
|
+
declare function isClosedIssueStatus(status: string): boolean;
|
|
712
|
+
interface Extraction<T> {
|
|
713
|
+
remaining: string;
|
|
714
|
+
moved: T[];
|
|
715
|
+
}
|
|
716
|
+
/**
|
|
717
|
+
* Extract task entries matching `select` from a TASKS.md document.
|
|
718
|
+
* Entries with open nested tasks are never extracted.
|
|
719
|
+
*/
|
|
720
|
+
declare function extractTasks(markdown: string, select: (entry: TaskEntry) => boolean): Extraction<TaskEntry>;
|
|
721
|
+
declare function extractIssues(markdown: string, select: (entry: IssueEntry) => boolean): Extraction<IssueEntry>;
|
|
722
|
+
/** Remove the common leading indentation of an entry so it stands alone. */
|
|
723
|
+
declare function dedentEntry(text: string): string;
|
|
724
|
+
/** Add `Completed: <date>` to a task line that has no completion date. */
|
|
725
|
+
declare function stampCompleted(text: string, date: string): string;
|
|
726
|
+
/** Mark an unfinished task as abandoned (it keeps its status marker). */
|
|
727
|
+
declare function stampAbandoned(text: string, date: string, reason: string): string;
|
|
728
|
+
/** Append entries to a closed registry, creating its header when empty. */
|
|
729
|
+
declare function appendToClosedRegistry(existing: string | undefined, kind: 'tasks' | 'issues', entries: string[], groupHeading?: string): string;
|
|
730
|
+
//#endregion
|
|
731
|
+
export { AGENT_FILE, AGENT_TEMPLATE, ARCHIVE_DIR, ARCHIVE_INDEX_FILE, ARTIFACT_FORMAT, AUTONOMOS_DIR, AgentConfig, AgentContext, AgentParser, AgentSection, AncestorAgent, BudgetFinding, BudgetFindingCode, CLOSED_DIR, CLOSED_ISSUE_STATUSES, COMPLEXITIES, CONTEXT_BUDGETS, Complexity, ContextBudgets, DECISIONS_DIR, Extraction, Harness, HarnessCodes, HarnessCodesSchema, HarnessSchema, ISSUES_FILE, Installer, InstallerSchema, IssueEntry, LEGACY_WORKLOGS_DIR, LOCAL_AGENT_TEMPLATE, MANIFEST_FILE, Manifest, ManifestSchema, PRIORITIES, PROTOCOL_FILE, PROTOCOL_TEMPLATE, PROTOCOL_TEMPLATE_V2026_1, PROTOCOL_VERSION, PathMapper, Priority, ResolvedTarget, SPECS_DIR, TASKS_FILE, TASKS_TEMPLATE, TargetKind, Task, TaskEntry, TaskParser, TaskReference, TaskRegistry, TaskStatus, WORKLOGS_DIR, appendToClosedRegistry, checkContextBudgets, composeMappers, createManifest, dedentEntry, displayRelative, extractIssues, extractTasks, findAgentFilePaths, findAncestorAgents, findProjectRoot, generateAgentTemplate, generateLocalAgentTemplate, generateManifestContent, generateWorklogContent, getHarness, getRawHarnessCodes, isClosedIssueStatus, isSamePath, listHarnesses, listPreferredHarnesses, manifestArtifactFormat, mapTaskStatusToWorklogStatus, parseIssueEntries, parseManifest, parseTaskEntries, prefixMapper, readTaskRegistry, relocateLinks, relocateRootMentions, resolveTargets, stampAbandoned, stampCompleted };
|
|
563
732
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/schemas/harness-codes.ts","../src/schemas/manifest.ts","../src/types.ts","../src/templates/agent.ts","../src/templates/manifest.ts","../src/templates/protocol.ts","../src/templates/tasks.ts","../src/templates/worklog.ts","../src/parsers/agent-finder.ts","../src/parsers/agent-parser.ts","../src/parsers/project-root.ts","../src/parsers/task-parser.ts","../src/parsers/task-registry.ts","../src/harness-codes.ts"],"mappings":";;;;;;AAIA;cAAa,gBAAA;;;AAAgB;cAKhB,aAAA;;;;cAKA,aAAA;AAAb;;;AAAA,cAKa,aAAA;AALa;AAK1B;;AAL0B,cAUb,UAAA;;AALa;AAK1B;cAKa,UAAA;;;AALU;cAUV,YAAA;;;;cAKA,SAAA;AALb;;;AAAA,cAUa,aAAA;AAVY;AAAA,cAaZ,WAAA
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/schemas/harness-codes.ts","../src/schemas/manifest.ts","../src/types.ts","../src/templates/agent.ts","../src/templates/manifest.ts","../src/templates/protocol.ts","../src/templates/tasks.ts","../src/templates/worklog.ts","../src/parsers/agent-finder.ts","../src/parsers/agent-parser.ts","../src/parsers/project-root.ts","../src/parsers/task-parser.ts","../src/parsers/task-registry.ts","../src/harness-codes.ts","../src/records/budgets.ts","../src/records/links.ts","../src/records/registry-edit.ts"],"mappings":"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"}
|