@phamvuhoang/otto-core 0.21.0 → 0.23.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/external-skills.d.ts +170 -0
- package/dist/external-skills.d.ts.map +1 -0
- package/dist/external-skills.js +417 -0
- package/dist/external-skills.js.map +1 -0
- package/dist/index.d.ts +11 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +200 -16
- package/dist/loop.js.map +1 -1
- package/dist/plan-artifacts.d.ts +10 -0
- package/dist/plan-artifacts.d.ts.map +1 -0
- package/dist/plan-artifacts.js +63 -0
- package/dist/plan-artifacts.js.map +1 -0
- package/dist/plan-gate.d.ts +10 -1
- package/dist/plan-gate.d.ts.map +1 -1
- package/dist/plan-gate.js +22 -4
- package/dist/plan-gate.js.map +1 -1
- package/dist/plan-report-cli.d.ts +2 -1
- package/dist/plan-report-cli.d.ts.map +1 -1
- package/dist/plan-report-cli.js +9 -32
- package/dist/plan-report-cli.js.map +1 -1
- package/dist/plan-rubric.d.ts +24 -0
- package/dist/plan-rubric.d.ts.map +1 -1
- package/dist/plan-rubric.js +122 -0
- package/dist/plan-rubric.js.map +1 -1
- package/dist/report-finalize.d.ts +26 -0
- package/dist/report-finalize.d.ts.map +1 -0
- package/dist/report-finalize.js +222 -0
- package/dist/report-finalize.js.map +1 -0
- package/dist/report-rubric.d.ts +1 -1
- package/dist/report-rubric.d.ts.map +1 -1
- package/dist/report-rubric.js +3 -3
- package/dist/report-rubric.js.map +1 -1
- package/dist/run-report.d.ts +29 -0
- package/dist/run-report.d.ts.map +1 -1
- package/dist/run-report.js.map +1 -1
- package/dist/runner.d.ts +2 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +1 -1
- package/dist/runner.js.map +1 -1
- package/dist/skills-cli.d.ts +16 -5
- package/dist/skills-cli.d.ts.map +1 -1
- package/dist/skills-cli.js +134 -7
- package/dist/skills-cli.js.map +1 -1
- package/dist/skills.d.ts +21 -0
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +26 -1
- package/dist/skills.js.map +1 -1
- package/dist/stage-exec.d.ts.map +1 -1
- package/dist/stage-exec.js +3 -2
- package/dist/stage-exec.js.map +1 -1
- package/dist/tools-cli.d.ts +55 -0
- package/dist/tools-cli.d.ts.map +1 -0
- package/dist/tools-cli.js +196 -0
- package/dist/tools-cli.js.map +1 -0
- package/dist/tools.d.ts +164 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +228 -0
- package/dist/tools.js.map +1 -0
- package/package.json +2 -2
- package/templates/plan.md +36 -4
- package/templates/quality-report.md +18 -9
- package/templates/report-rewrite.md +25 -0
package/templates/plan.md
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
You are PLANNING, not implementing. Turn the thin task in `<inputs>` into a
|
|
24
24
|
world-class, structured **spec** and a task-decomposed **plan**, persisted for
|
|
25
|
-
human review
|
|
25
|
+
human review _before_ any code is written. There is NO human available during
|
|
26
26
|
this run: act autonomously and **record your reasoning** instead of waiting for
|
|
27
27
|
approval ("record assumptions and proceed").
|
|
28
28
|
|
|
@@ -66,7 +66,7 @@ plan-quality rubric scores — a world-class plan has all of them):
|
|
|
66
66
|
|
|
67
67
|
- `## Problem` — who is blocked, what they cannot do, and why it matters.
|
|
68
68
|
- `## Decisions` (or `## Assumptions`) — each `question → chosen answer →
|
|
69
|
-
|
|
69
|
+
rationale`; record blockers and the safest assumption taken.
|
|
70
70
|
- `## Scope guard` — what is explicitly **out of scope** / the **non-goals**, so
|
|
71
71
|
the implementer does not sprawl.
|
|
72
72
|
- `## File map` — the component/file map: the specific files this work will
|
|
@@ -96,8 +96,20 @@ independent tasks out to isolated sub-agents (issue #66 P11). Shape:
|
|
|
96
96
|
{
|
|
97
97
|
"version": 1,
|
|
98
98
|
"tasks": [
|
|
99
|
-
{
|
|
100
|
-
|
|
99
|
+
{
|
|
100
|
+
"id": "t1",
|
|
101
|
+
"title": "<short>",
|
|
102
|
+
"fileScope": ["path/you/expect/to/touch"],
|
|
103
|
+
"dependsOn": [],
|
|
104
|
+
"parallelSafe": true
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"id": "t2",
|
|
108
|
+
"title": "<short>",
|
|
109
|
+
"fileScope": ["other/path"],
|
|
110
|
+
"dependsOn": ["t1"],
|
|
111
|
+
"parallelSafe": false
|
|
112
|
+
}
|
|
101
113
|
]
|
|
102
114
|
}
|
|
103
115
|
```
|
|
@@ -109,9 +121,29 @@ Rules: `id` unique; `dependsOn` lists earlier task ids that must land first;
|
|
|
109
121
|
if the work does not decompose into cleanly independent tasks, omit it and the
|
|
110
122
|
run proceeds sequentially. A malformed file is ignored (fan-out simply disabled).
|
|
111
123
|
|
|
124
|
+
## 4c. SELF-CHECK PLAN DEPTH ONCE
|
|
125
|
+
|
|
126
|
+
Before committing, inspect the spec + plan you wrote. If any item below is
|
|
127
|
+
missing, revise the artifacts once before you commit:
|
|
128
|
+
|
|
129
|
+
- File map names at least two real repo paths in backticks.
|
|
130
|
+
- Every task names the failing test file/case it will start with and includes an
|
|
131
|
+
explicit `verify:` command.
|
|
132
|
+
- Success criteria are concretely testable: a reviewer can tell pass/fail from
|
|
133
|
+
an observable result, test, or command.
|
|
134
|
+
|
|
112
135
|
## 5. COMMIT
|
|
113
136
|
|
|
114
137
|
Commit ONLY the spec + plan + (if written) the task graph — this is the whole
|
|
115
138
|
run, no code. Use a `docs(plan):` or `chore(plan):` commit. Then print a one-line
|
|
116
139
|
summary of the task-key and the number of plan tasks authored. Do not implement;
|
|
117
140
|
the human reviews the plan next.
|
|
141
|
+
|
|
142
|
+
## 6. QUALITY REPORT
|
|
143
|
+
|
|
144
|
+
Before you output `<promise>NO MORE TASKS</promise>`, emit one Otto quality
|
|
145
|
+
report for this plan-authoring run. Frame it around what the maintainer can now
|
|
146
|
+
do with the authored plan (approve it, edit it, or reject it before
|
|
147
|
+
implementation), not around the diff.
|
|
148
|
+
|
|
149
|
+
@include:quality-report.md
|
|
@@ -7,10 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
Produce an **Otto quality report** with the exact section headings below. Rules:
|
|
9
9
|
|
|
10
|
+
- **Outcome-first.** Lead with what the end user can now do, drawn from the
|
|
11
|
+
issue/plan intent and traceable to evidence — not marketing claims and not a
|
|
12
|
+
diff summary. Keep the change description below the engineer divider.
|
|
10
13
|
- **Layperson-first.** Lead with plain language a non-engineer can act on — the
|
|
11
|
-
prose sections (What
|
|
12
|
-
Unsure About) come first; keep code-cited engineer detail below the
|
|
13
|
-
Write the top sections with no jargon, file paths, or SHAs.
|
|
14
|
+
prose sections (What You Can Now Do · Why · How To Verify · What To Watch ·
|
|
15
|
+
What I Was Unsure About) come first; keep code-cited engineer detail below the
|
|
16
|
+
divider. Write the top sections with no jargon, file paths, or SHAs.
|
|
14
17
|
- **Readable first.** Keep it short enough to review in a couple of minutes — a
|
|
15
18
|
maintainer should not have to replay the run log. Specific beats exhaustive.
|
|
16
19
|
- **Verification a non-engineer can run.** _How To Verify_ is numbered,
|
|
@@ -33,10 +36,11 @@ Produce an **Otto quality report** with the exact section headings below. Rules:
|
|
|
33
36
|
One of — **Accepted** · **Accepted with follow-ups** · **Needs human review** · **Rejected**
|
|
34
37
|
(when uncertain, choose **Needs human review**)
|
|
35
38
|
|
|
36
|
-
## What
|
|
39
|
+
## What You Can Now Do
|
|
37
40
|
|
|
38
|
-
<Plain language, no jargon —
|
|
39
|
-
|
|
41
|
+
<Plain language, no jargon — the user-visible outcome this run enables, in one
|
|
42
|
+
or two sentences. Draw it from the issue/plan intent. No file paths, SHAs, or
|
|
43
|
+
diff summaries here; those go below the divider.>
|
|
40
44
|
|
|
41
45
|
## Why
|
|
42
46
|
|
|
@@ -72,6 +76,11 @@ _Engineer detail below — a non-engineer can stop reading here._
|
|
|
72
76
|
- Source: <plan/PRD path, GitHub issue #, or Linear ref>
|
|
73
77
|
- Issue or plan: <link or path>
|
|
74
78
|
|
|
79
|
+
## What Changed
|
|
80
|
+
|
|
81
|
+
<Engineer-facing change summary: the concrete implementation or documentation
|
|
82
|
+
changes, one click below the user outcome. Cite evidence in the next section.>
|
|
83
|
+
|
|
75
84
|
## Evidence
|
|
76
85
|
|
|
77
86
|
- Implementation evidence: <file:line or commit SHA proving each claim; the
|
|
@@ -97,8 +106,8 @@ _Engineer detail below — a non-engineer can stop reading here._
|
|
|
97
106
|
### Human verdict trail
|
|
98
107
|
|
|
99
108
|
Prior **human** verdicts on past Otto runs (most recent last) — consult them so a
|
|
100
|
-
recurring reason ("scope creep", "thin evidence") informs
|
|
101
|
-
and
|
|
109
|
+
recurring reason ("scope creep", "thin evidence") informs _this_ run's Verdict
|
|
110
|
+
and _Recommended next action_ before you commit to one:
|
|
102
111
|
|
|
103
112
|
<verdict-trail>
|
|
104
113
|
|
|
@@ -109,7 +118,7 @@ and *Recommended next action* before you commit to one:
|
|
|
109
118
|
**Maintainer:** after reviewing this report, append your verdict to
|
|
110
119
|
`./.otto/verdicts.md` (create it lazily) — a dated `##` heading plus one line:
|
|
111
120
|
the human verdict (**Accepted** · **Accepted with follow-ups** · **Rejected** ·
|
|
112
|
-
**Needs investigation**) and
|
|
121
|
+
**Needs investigation**) and _why_ (what was accepted with caveats, or the
|
|
113
122
|
concrete reason it was rejected). The file is git-tracked; it feeds the existing
|
|
114
123
|
learning loop, so future runs see what was accepted or rejected and why.
|
|
115
124
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{{ RESUME }}
|
|
2
|
+
|
|
3
|
+
A quality report failed Otto's emit-time legibility rubric. The missing
|
|
4
|
+
required section(s): **{{ MISSING }}**.
|
|
5
|
+
|
|
6
|
+
Your only job: emit a corrected **Otto quality report** that includes ALL
|
|
7
|
+
required sections. Lead the prose with `## What You Can Now Do`. Keep the
|
|
8
|
+
leading `# Otto quality report` H1 marker so the harness re-captures it.
|
|
9
|
+
|
|
10
|
+
Rules — read carefully, this is a tight rewrite, not a new run:
|
|
11
|
+
|
|
12
|
+
- **Read-only.** Do NOT edit files, do NOT commit, do NOT run the loop or any
|
|
13
|
+
build/test stage. You are reformatting an existing report.
|
|
14
|
+
- **No invented value.** Base every claim ONLY on the report below and real run
|
|
15
|
+
evidence. Never fabricate outcomes, verdicts, or evidence to fill a section —
|
|
16
|
+
if the original report did not establish something, say so plainly.
|
|
17
|
+
- **Layperson-first, terse.** Match the style of the quality-report contract:
|
|
18
|
+
the prose sections (What You Can Now Do · Why · How To Verify · What To Watch ·
|
|
19
|
+
What I Was Unsure About) come first, no jargon, then the
|
|
20
|
+
`_Engineer detail below — a non-engineer can stop reading here._` divider, then
|
|
21
|
+
the engineer sections. Short enough to review in a couple of minutes.
|
|
22
|
+
|
|
23
|
+
The report to correct:
|
|
24
|
+
|
|
25
|
+
{{ REPORT }}
|