oris-skills 2.2.3 → 3.0.2
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/.cursor-plugin/plugin.json +2 -3
- package/CHANGELOG.md +24 -6
- package/README.md +28 -60
- package/docs/architecture.md +15 -11
- package/docs/distribution.md +3 -3
- package/docs/maintainer-guide.md +4 -4
- package/docs/user-guide.md +12 -20
- package/package.json +3 -6
- package/references/clean-code-checklist.md +2 -2
- package/references/conventions.md +36 -16
- package/references/doc-policy.md +5 -5
- package/references/research.md +45 -0
- package/references/settings.md +11 -5
- package/references/settings.schema.json +10 -0
- package/scripts/flow/oris-flow-layout.mjs +0 -16
- package/scripts/flow/oris-flow-scan.mjs +32 -317
- package/scripts/flow/oris-gitignore.mjs +1 -5
- package/scripts/install/install-user-skills.mjs +3 -3
- package/scripts/install/uninstall-user-skills.mjs +2 -29
- package/scripts/oris-skills.mjs +0 -47
- package/scripts/tests/run-all-tests.mjs +1 -9
- package/scripts/tests/test-cleanliness.mjs +54 -0
- package/scripts/tests/test-oris-flow-scan.mjs +21 -91
- package/scripts/tests/test-routing-lifecycle.mjs +24 -54
- package/scripts/tests/test-schemas.mjs +17 -31
- package/scripts/tests/test-skill-style.mjs +5 -2
- package/skills/oris-flow/SKILL.md +21 -11
- package/skills/oris-flow/agents/openai.yaml +1 -1
- package/skills/oris-flow/references/architecture.md +6 -3
- package/skills/oris-flow/references/change.md +3 -0
- package/skills/oris-flow/references/commit.md +9 -8
- package/skills/oris-flow/references/criteria.md +9 -5
- package/skills/oris-flow/references/discover.md +2 -2
- package/skills/oris-flow/references/docs.md +5 -1
- package/skills/oris-flow/references/fix.md +10 -5
- package/skills/oris-flow/references/handoff.md +67 -0
- package/skills/oris-flow/references/help.md +3 -6
- package/skills/oris-flow/references/implement.md +7 -4
- package/skills/oris-flow/references/new.md +6 -6
- package/skills/oris-flow/references/plan.md +7 -2
- package/skills/oris-flow/references/pr.md +2 -2
- package/skills/oris-flow/references/setup.md +33 -39
- package/skills/oris-flow/references/triage.md +69 -0
- package/skills/oris-flow/references/verify.md +5 -5
- package/agents/oris-loop-debriefer.md +0 -30
- package/agents/oris-loop-doctor.md +0 -32
- package/agents/oris-loop-executor.md +0 -35
- package/agents/oris-loop-verifier.md +0 -35
- package/references/loop-adapter.schema.json +0 -93
- package/references/loop-contract.md +0 -126
- package/references/loop.schema.json +0 -156
- package/references/repo-map.md +0 -51
- package/references/repo-map.schema.json +0 -213
- package/scripts/flow/oris-flow-clean-runtime.mjs +0 -182
- package/scripts/install/generate-agent-adapters.mjs +0 -81
- package/scripts/loop/oris-loop-bootstrap.mjs +0 -383
- package/scripts/loop/oris-loop-bundle.mjs +0 -22
- package/scripts/loop/oris-loop-chat.mjs +0 -396
- package/scripts/loop/oris-loop-demo.mjs +0 -171
- package/scripts/loop/oris-loop-document.mjs +0 -196
- package/scripts/loop/oris-loop-dry-run.mjs +0 -114
- package/scripts/loop/oris-loop-fixtures.mjs +0 -149
- package/scripts/loop/oris-loop-list.mjs +0 -81
- package/scripts/loop/oris-loop-paths.mjs +0 -232
- package/scripts/loop/oris-loop-run.mjs +0 -301
- package/scripts/loop/oris-loop-stop.mjs +0 -358
- package/scripts/loop/oris-loop-templates.mjs +0 -80
- package/scripts/loop/oris-loop-verify.mjs +0 -205
- package/scripts/tests/test-agent-adapters.mjs +0 -70
- package/scripts/tests/test-oris-1-0-cleanliness.mjs +0 -58
- package/scripts/tests/test-oris-flow-clean-runtime.mjs +0 -75
- package/scripts/tests/test-oris-loop-bootstrap.mjs +0 -94
- package/scripts/tests/test-oris-loop-document.mjs +0 -148
- package/scripts/tests/test-oris-loop-list.mjs +0 -74
- package/scripts/tests/test-oris-loop-run.mjs +0 -71
- package/scripts/tests/test-oris-loop-smoke.mjs +0 -120
- package/scripts/tests/test-oris-loop-stop.mjs +0 -432
- package/skills/oris-flow/references/loop-craft.md +0 -59
- package/skills/oris-flow/references/loop-improve.md +0 -32
- package/skills/oris-flow/references/loop-run.md +0 -47
- package/skills/oris-flow/references/loop.md +0 -56
- package/skills/oris-flow/templates/debriefer.md +0 -19
- package/skills/oris-flow/templates/doctor.md +0 -22
- package/skills/oris-flow/templates/executor.md +0 -25
- package/skills/oris-flow/templates/orchestrator.md +0 -36
- package/skills/oris-flow/templates/verifier.md +0 -24
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
Bring `{tasksRoot}/{task}/` documents in line with a later change, keeping the change
|
|
4
4
|
traceable ({tasksRoot} per doc-policy).
|
|
5
5
|
|
|
6
|
+
BOUNDARY: the spec is unchanged but code/reality moved on → this route. The business spec
|
|
7
|
+
itself changed → `skills/oris-flow/references/change.md` (it owns the delta and the history).
|
|
8
|
+
|
|
6
9
|
RULES: `references/conventions.md`. Doc standards: `references/doc-policy.md`.
|
|
7
10
|
|
|
8
11
|
## Workflow
|
|
@@ -18,7 +21,8 @@ RULES: `references/conventions.md`. Doc standards: `references/doc-policy.md`.
|
|
|
18
21
|
- add one change-history row per document: date | source | short change | reason;
|
|
19
22
|
- keep unresolved risks in open points;
|
|
20
23
|
- preserve acceptance-criteria IDs.
|
|
21
|
-
7. CLOSE with a concise summary.
|
|
24
|
+
7. CLOSE with a concise summary. OFFER next: commit the doc updates
|
|
25
|
+
(`skills/oris-flow/references/commit.md`) | stop — never auto-started.
|
|
22
26
|
|
|
23
27
|
## Never
|
|
24
28
|
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
The smallest safe change near the failing behavior. Reproduce first, root cause before
|
|
4
4
|
any edit, evidence before done.
|
|
5
5
|
|
|
6
|
-
RULES: `references/conventions.md`.
|
|
6
|
+
RULES: `references/conventions.md`. Research: `references/research.md`.
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Intake
|
|
9
9
|
|
|
10
10
|
1. IF no details given → ask ONE question: what happens, what was expected, where
|
|
11
11
|
(link/ID when one exists).
|
|
@@ -19,8 +19,12 @@ RULES: `references/conventions.md`.
|
|
|
19
19
|
- REPRODUCE or trace the failure path in code before proposing anything.
|
|
20
20
|
- FIND root cause, not symptom. Check whether the documented behavior
|
|
21
21
|
(criteria/analysis) defines "correct".
|
|
22
|
-
-
|
|
23
|
-
|
|
22
|
+
- RESEARCH when the cause crosses the repo boundary (`references/research.md`): a
|
|
23
|
+
third-party error, a library behaving unlike its docs, a known-issue smell → search
|
|
24
|
+
for the documented behavior and standard workarounds at the repo's pinned versions,
|
|
25
|
+
instead of guessing.
|
|
26
|
+
- SUMMARIZE: root cause → proposed minimal fix → files → verification plan (+ sources
|
|
27
|
+
when research ran). CONFIRM explicitly.
|
|
24
28
|
|
|
25
29
|
## Fix
|
|
26
30
|
|
|
@@ -33,7 +37,8 @@ RULES: `references/conventions.md`.
|
|
|
33
37
|
1. RUN the reproduction + targeted tests; broaden if the surface is shared.
|
|
34
38
|
2. SUMMARIZE: cause, change, verification, residual risk.
|
|
35
39
|
3. RECOMMEND: `skills/oris-flow/references/verify.md` when criteria exist; docs update
|
|
36
|
-
(`skills/oris-flow/references/docs.md`) when documented behavior changed
|
|
40
|
+
(`skills/oris-flow/references/docs.md`) when documented behavior changed; commit
|
|
41
|
+
(`skills/oris-flow/references/commit.md`) when the fix is verified and ready to package.
|
|
37
42
|
|
|
38
43
|
## Never
|
|
39
44
|
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Handoff
|
|
2
|
+
|
|
3
|
+
Package this session's state so the next session — or another agent — resumes from the
|
|
4
|
+
exact point: decisions, evidence, next move. The handoff is a bridge, not a store: task
|
|
5
|
+
docs and `AGENTS.md` stay the truth, the handoff points at them and carries ONLY what
|
|
6
|
+
lives nowhere else yet.
|
|
7
|
+
|
|
8
|
+
RULES: `references/conventions.md`. Entering handoff IS the request to write it — no
|
|
9
|
+
generation gate; the document lands outside the repo.
|
|
10
|
+
|
|
11
|
+
## 1. Collect (silent)
|
|
12
|
+
|
|
13
|
+
1. GATHER from this conversation: the active task and route, decisions the user
|
|
14
|
+
confirmed, evidence observed (commands seen green, verifications, reproductions),
|
|
15
|
+
open questions with their current best answer, and the next move.
|
|
16
|
+
2. SPLIT what you gathered:
|
|
17
|
+
- already recorded in task docs or `AGENTS.md` → the handoff POINTS at the file;
|
|
18
|
+
- confirmed in chat but written nowhere → the handoff CARRIES it, marked with who
|
|
19
|
+
confirmed it;
|
|
20
|
+
- speculation → out, or listed as an open question.
|
|
21
|
+
3. Durable project facts proved this session and missing from `AGENTS.md` → write them
|
|
22
|
+
back NOW (`references/conventions.md` `## Project facts`), so the handoff can point
|
|
23
|
+
instead of carry.
|
|
24
|
+
|
|
25
|
+
## 2. Write (outside the repo)
|
|
26
|
+
|
|
27
|
+
WRITE `handoff-{task-or-topic}-{timestamp}.md` to the OS temp directory — never inside
|
|
28
|
+
the repo or `{tasksRoot}`. Language: `artifactLanguage` (another session reads this cold —
|
|
29
|
+
never caveman-compressed). Structure:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# Handoff — {task or topic}
|
|
33
|
+
Date: … | Repo: {absolute path} | Route in progress: {route or none}
|
|
34
|
+
## Where we are
|
|
35
|
+
What was asked, what is done, what is verified — evidence, not claims.
|
|
36
|
+
## Decisions confirmed in chat, not yet in docs
|
|
37
|
+
- {decision} — confirmed by {user}, because {reason}
|
|
38
|
+
## Read before acting
|
|
39
|
+
- {file} — {why it matters first}
|
|
40
|
+
## Open questions
|
|
41
|
+
- {question} — current best answer: {answer or none}
|
|
42
|
+
## Next move
|
|
43
|
+
One imperative sentence: the first action the next session takes.
|
|
44
|
+
## Resume with
|
|
45
|
+
{the route reference to re-enter} — {one-line why}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
TELL the absolute path + a one-line summary of the next move. OFFER: keep working here |
|
|
49
|
+
stop.
|
|
50
|
+
|
|
51
|
+
## Never
|
|
52
|
+
|
|
53
|
+
- Write the handoff inside the repo or under `{tasksRoot}` — it is session luggage, not
|
|
54
|
+
a project document.
|
|
55
|
+
- Duplicate task-doc or `AGENTS.md` content — point at the file.
|
|
56
|
+
- Carry anything not observed in this session or confirmed by the user — a handoff that
|
|
57
|
+
guesses poisons the next session.
|
|
58
|
+
- Include secrets or tokens — mask as `***`.
|
|
59
|
+
- Auto-start the next route after writing.
|
|
60
|
+
|
|
61
|
+
## Done when
|
|
62
|
+
|
|
63
|
+
- [ ] Facts proved this session written back to `AGENTS.md` before the handoff.
|
|
64
|
+
- [ ] Every item in the handoff is a pointer, an observed fact, or a user-confirmed
|
|
65
|
+
decision — nothing guessed.
|
|
66
|
+
- [ ] Document written to the OS temp dir; absolute path and next move shown.
|
|
67
|
+
- [ ] Resume route named; nothing auto-started.
|
|
@@ -8,24 +8,21 @@ details on request.
|
|
|
8
8
|
| Need | Answer |
|
|
9
9
|
|------|--------|
|
|
10
10
|
| Start anything | Type `/oris-flow` — it routes or shows the menu. The only command to remember. |
|
|
11
|
-
| Try loops safely | `npx oris-skills loop demo` → follow the 3 printed steps (`dry-run` previews, `chat --action start` runs). |
|
|
12
11
|
| Install / update | `npx oris-skills@latest install` (detects Cursor, Claude Code, Codex, Copilot; or `--agents cursor,claude,codex,copilot`). Reload the agent afterwards. |
|
|
13
12
|
| Copilot / any other agent | Copilot Chat: enable `chat.promptFiles` once, then `/oris-flow`. Anything else that reads files: point it at `~/.oris/oris-flow.md`. |
|
|
14
13
|
| Uninstall / reinstall | `npx oris-skills uninstall` / `npx oris-skills reinstall` (preview with `--dry-run`). |
|
|
15
|
-
| Stop a loop | `npx oris-skills loop chat --action stop` |
|
|
16
|
-
| Loop status | `npx oris-skills loop chat --action status` / `npx oris-skills loop list` |
|
|
17
14
|
| Skill missing after install | Reload the agent; check `~/.oris/oris-skills/` exists; re-run install with `--force`. |
|
|
18
|
-
|
|
|
15
|
+
| Capture an idea or bug without doing it now | `/oris-flow` → Triage — it becomes a work item with a brief, routed to its route. |
|
|
16
|
+
| Context window full / continue in a new session | `/oris-flow` → Hand off — writes a resume doc and names the route to re-enter. |
|
|
19
17
|
| Change document language / chat verbosity | `/oris-flow` → Setup (settings live in `.oris-flow/settings.json`). |
|
|
20
18
|
| Ultra-short answers | `/oris-flow` → Setup → set `responseStyle: caveman` — chat shrinks to maximum token density; documents stay complete. |
|
|
21
|
-
| Edit a loop's behavior | Edit the files in `.oris-flow/loops/{slug}/prompts/` — the next pass obeys them. |
|
|
22
19
|
|
|
23
20
|
Deeper docs: `docs/user-guide.md`, `docs/architecture.md` in the bundle (`~/.oris/oris-skills/`).
|
|
24
21
|
|
|
25
22
|
## Never
|
|
26
23
|
|
|
27
24
|
- Tell users to paste secrets anywhere.
|
|
28
|
-
- Dump internals (
|
|
25
|
+
- Dump internals (settings JSON, install layout) unless the user asks for technical
|
|
29
26
|
troubleshooting.
|
|
30
27
|
|
|
31
28
|
## Done when
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Execute the confirmed plan — nothing more, nothing less.
|
|
4
4
|
|
|
5
|
-
RULES: `references/conventions.md`.
|
|
5
|
+
RULES: `references/conventions.md`. Research: `references/research.md`.
|
|
6
6
|
|
|
7
7
|
## Prepare
|
|
8
8
|
|
|
9
9
|
1. FIND `{tasksRoot}/{task}/implementation-plan.md`. IF missing → reconstruct a technical
|
|
10
10
|
recap from chat, task docs, and code; SHOW it; CONFIRM before any edit.
|
|
11
|
-
2. READ
|
|
12
|
-
the touched area.
|
|
11
|
+
2. READ `AGENTS.md`, project standards, local skills/rules, tests and build conventions
|
|
12
|
+
for the touched area.
|
|
13
13
|
3. MAP the code, tests, config, and translations the plan touches (parallel subagents
|
|
14
14
|
when available).
|
|
15
15
|
|
|
@@ -22,6 +22,8 @@ RULES: `references/conventions.md`.
|
|
|
22
22
|
## While coding
|
|
23
23
|
|
|
24
24
|
- FOLLOW existing project patterns; no new abstractions without need.
|
|
25
|
+
- RESEARCH mid-build only when an external API resists (`references/research.md`) —
|
|
26
|
+
verify its current docs at the repo's pinned version; never guess signatures.
|
|
25
27
|
- STAY inside the confirmed scope; park discoveries as notes, don't chase them.
|
|
26
28
|
- ADD or update focused tests for the changed behavior.
|
|
27
29
|
- CLEAN as you finish (`references/clean-code-checklist.md`): remove dead code, debug
|
|
@@ -32,7 +34,8 @@ RULES: `references/conventions.md`.
|
|
|
32
34
|
1. RUN targeted verification first; broaden when the touched surface is shared.
|
|
33
35
|
2. SUMMARIZE: touched files, verification results, residual risk.
|
|
34
36
|
3. RECOMMEND next: `skills/oris-flow/references/verify.md` when acceptance criteria exist;
|
|
35
|
-
otherwise update docs (`skills/oris-flow/references/docs.md`)
|
|
37
|
+
otherwise update docs (`skills/oris-flow/references/docs.md`) or commit
|
|
38
|
+
(`skills/oris-flow/references/commit.md`) when the change is verified and ready to package.
|
|
36
39
|
|
|
37
40
|
## Never
|
|
38
41
|
|
|
@@ -10,7 +10,7 @@ RULES: `references/conventions.md`. Writes ONLY after the recap is confirmed.
|
|
|
10
10
|
|
|
11
11
|
1. PURPOSE — the product in one sentence; it anchors every agent decision and opens AGENTS.md.
|
|
12
12
|
2. TYPE — webapp | api | library | cli | monorepo. Drives layout and verify strategy.
|
|
13
|
-
3. STACK — recommend from purpose + the user's existing repos (
|
|
13
|
+
3. STACK — recommend from purpose + the user's existing repos (`AGENTS.md` of sibling
|
|
14
14
|
projects when visible). Never impose.
|
|
15
15
|
4. TEST RUNNER + LINT — the stack's default unless the user objects. Non-negotiable that
|
|
16
16
|
one exists: agents need a red/green signal, not opinions.
|
|
@@ -42,10 +42,10 @@ RUN the test command and the lint command; SHOW real output — fail first, then
|
|
|
42
42
|
|
|
43
43
|
## Arm the flow
|
|
44
44
|
|
|
45
|
-
1.
|
|
46
|
-
|
|
47
|
-
2.
|
|
48
|
-
|
|
45
|
+
1. The commands just verified are ALREADY in `AGENTS.md` (scaffold table) — that is the
|
|
46
|
+
whole record; nothing else to generate.
|
|
47
|
+
2. WRITE `.oris-flow/settings.json` with the defaults (`references/settings.md`);
|
|
48
|
+
tasksRoot `.oris-flow/tasks` — the project stays clean.
|
|
49
49
|
|
|
50
50
|
AFTER: offer discover the first feature (`skills/oris-flow/references/discover.md`) | stop.
|
|
51
51
|
|
|
@@ -61,4 +61,4 @@ AFTER: offer discover the first feature (`skills/oris-flow/references/discover.m
|
|
|
61
61
|
- [ ] Purpose, type, stack, test runner confirmed before any write.
|
|
62
62
|
- [ ] AGENTS.md sparse and commands-first; CONTEXT.md + ADR-0001 written.
|
|
63
63
|
- [ ] Test + lint observed running (fail → pass shown).
|
|
64
|
-
- [ ]
|
|
64
|
+
- [ ] Verified commands recorded in `AGENTS.md`; settings written with defaults.
|
|
@@ -4,13 +4,17 @@ Interview the technical owner until another agent or developer could execute the
|
|
|
4
4
|
without guessing.
|
|
5
5
|
|
|
6
6
|
RULES: `references/conventions.md`. Doc standards: `references/doc-policy.md`.
|
|
7
|
+
Research: `references/research.md`.
|
|
7
8
|
|
|
8
9
|
## Before asking
|
|
9
10
|
|
|
10
11
|
1. EXPLORE: `functional-analysis.md` + `acceptance-criteria.md` when present (preferred,
|
|
11
12
|
not required — offer discovery only when the functional source is too weak to plan
|
|
12
|
-
safely), task docs,
|
|
13
|
-
2.
|
|
13
|
+
safely), task docs, `AGENTS.md`, standards, code, tests, build scripts.
|
|
14
|
+
2. RESEARCH external surfaces (`references/research.md`): the plan leans on a
|
|
15
|
+
third-party API, library, or service → verify against its current official docs at
|
|
16
|
+
the repo's pinned versions; sources go into the plan.
|
|
17
|
+
3. PREFER existing project patterns over new abstractions. Keep uncertainty visible.
|
|
14
18
|
|
|
15
19
|
## Interview
|
|
16
20
|
|
|
@@ -36,6 +40,7 @@ ON generate → write `{tasksRoot}/{task}/implementation-plan.md` (language `art
|
|
|
36
40
|
### 2. …
|
|
37
41
|
## Verification (commands, tests, what proves each step)
|
|
38
42
|
## Risks & open points
|
|
43
|
+
## Sources (only when research ran: link + what it settled)
|
|
39
44
|
## Change history (date | source | change | reason)
|
|
40
45
|
```
|
|
41
46
|
|
|
@@ -22,8 +22,8 @@ RULES: `references/conventions.md`. DevOps config: `references/devops.md`.
|
|
|
22
22
|
## Gate (never skipped)
|
|
23
23
|
|
|
24
24
|
SHOW the title + description + target branch. ASK: open PR | edit | cancel.
|
|
25
|
-
ON open → create via the provider (
|
|
26
|
-
|
|
25
|
+
ON open → create via the configured provider (`references/devops.md` — read `provider`,
|
|
26
|
+
act generically). Missing provider auth → say so; never guess credentials.
|
|
27
27
|
|
|
28
28
|
## After
|
|
29
29
|
|
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
# Oris Setup
|
|
2
2
|
|
|
3
|
-
Make the repo cheap for agents to understand —
|
|
4
|
-
readiness. ADAPT to what the repo
|
|
5
|
-
user confirms the recap.
|
|
3
|
+
Make the repo cheap for agents to understand — `AGENTS.md` as the one durable store,
|
|
4
|
+
preferences in `.oris-flow/settings.json`, AI-readiness checked. ADAPT to what the repo
|
|
5
|
+
IS; never force one structure. Writes ONLY after the user confirms the recap.
|
|
6
6
|
|
|
7
|
-
RULES: `references/conventions.md`.
|
|
8
|
-
IF the repo
|
|
7
|
+
RULES: `references/conventions.md`. Settings: `references/settings.md`.
|
|
8
|
+
IF the repo has no source files, or no commit beyond a scaffold-only init → route to
|
|
9
|
+
`skills/oris-flow/references/new.md` instead.
|
|
9
10
|
|
|
10
11
|
## Mode
|
|
11
12
|
|
|
12
|
-
IF
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
- refresh all (keeps `confirmed` values — scan merges, never overwrites them)
|
|
17
|
-
- update one area (`--area <section>`)
|
|
18
|
-
- review stale sections
|
|
13
|
+
IF `AGENTS.md` (or `CLAUDE.md`) exists → this is a refresh: READ it first, then ask ONE
|
|
14
|
+
question with these options:
|
|
15
|
+
- update it from a fresh scan (scan below; edits merge in, confirmed facts stay)
|
|
16
|
+
- review one section
|
|
19
17
|
- show summary (no writes)
|
|
20
|
-
- recreate from scratch
|
|
21
18
|
- preferences → Local Preferences below; touches only `.oris-flow/settings.json`
|
|
22
|
-
- clean runtime → preview with `npx oris-skills flow clean-runtime --repository-root <repo> --dry-run`, confirm, run without `--dry-run`
|
|
23
19
|
|
|
24
20
|
ELSE → create from scratch.
|
|
25
21
|
|
|
@@ -27,15 +23,15 @@ ELSE → create from scratch.
|
|
|
27
23
|
|
|
28
24
|
1. CONFIRM the target repository root (ask only if multiple roots are plausible).
|
|
29
25
|
2. SCAN: `npx oris-skills flow scan --repository-root <repo> --json` — deterministic
|
|
30
|
-
baseline: `projectType`, stacks, commands (with confidence),
|
|
31
|
-
|
|
26
|
+
baseline: `projectType`, stacks, commands (with confidence), areas, `truncated` flag.
|
|
27
|
+
Scan output = draft evidence, not truth; it writes nothing.
|
|
32
28
|
3. IF `truncated: true` → say so, then per-area subagent scans are REQUIRED, not optional.
|
|
33
29
|
4. FAN OUT parallel subagent scans (docs, frontend, backend/data, tests/build, local
|
|
34
30
|
skills/rules) by DEFAULT whenever the repo has more than one of those areas —
|
|
35
31
|
entering setup is the user's request to spawn (`references/conventions.md`
|
|
36
|
-
`## Subagents`). SKIP only when the
|
|
37
|
-
|
|
38
|
-
same scans inline, sequentially.
|
|
32
|
+
`## Subagents`). SKIP only when the baseline scan already answers EVERY §2 decision
|
|
33
|
+
(project type, tasks root, verify commands, version control) — say you skipped and
|
|
34
|
+
name the evidence. No agent tool on the platform → same scans inline, sequentially.
|
|
39
35
|
|
|
40
36
|
## 2. Present findings, decide one at a time
|
|
41
37
|
|
|
@@ -43,14 +39,15 @@ SHOW compactly: detected project type + evidence, stacks, commands, AI-readiness
|
|
|
43
39
|
Then WALK decisions ONE per turn — short explainer first, recommended answer first:
|
|
44
40
|
|
|
45
41
|
- **Project type** — confirm `projectType` (webapp | api | library | cli | monorepo); it
|
|
46
|
-
drives
|
|
42
|
+
drives how criteria/verify observe behavior.
|
|
47
43
|
- **Tasks root** — where Oris writes task documents. Default `.oris-flow/tasks` (keeps
|
|
48
44
|
the project clean); keep `docs/tasks` only when the team already treats task docs as
|
|
49
|
-
project docs. Record in `
|
|
50
|
-
- **Verify commands** — show detected build+test commands; user confirms or corrects
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
project docs. Record in settings `tasksRoot`.
|
|
46
|
+
- **Verify commands** — show detected build+test commands; user confirms or corrects.
|
|
47
|
+
Confirmed commands go into `AGENTS.md` — they feed implement, verify, and fix;
|
|
48
|
+
unconfirmed = a guess.
|
|
49
|
+
- **Version control for `.oris-flow/`** — commit (team default) or gitignore. Record in
|
|
50
|
+
settings `versionControl`.
|
|
54
51
|
|
|
55
52
|
## 3. AI-readiness check
|
|
56
53
|
|
|
@@ -63,7 +60,7 @@ fix offer:
|
|
|
63
60
|
| `CONTEXT.md` | domain glossary — the names agents must use for the product's concepts |
|
|
64
61
|
| `docs/adr/` | decisions agents must not re-litigate |
|
|
65
62
|
| project skills/rules (`.claude/skills`, `.cursor/rules`) | repeatable workflows as source of truth |
|
|
66
|
-
| confirmed test/build commands | deterministic feedback
|
|
63
|
+
| confirmed test/build commands in `AGENTS.md` | deterministic feedback — agents verify instead of guessing |
|
|
67
64
|
|
|
68
65
|
ON explicit confirmation per file → scaffold the missing ones minimal.
|
|
69
66
|
|
|
@@ -71,32 +68,29 @@ ON explicit confirmation per file → scaffold the missing ones minimal.
|
|
|
71
68
|
|
|
72
69
|
1. RECAP: repo, mode, project type, tasksRoot, files to write, AI-readiness gaps,
|
|
73
70
|
choices. CONFIRM explicitly.
|
|
74
|
-
2. WRITE
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
3. OFFER next: discovery | technical plan | loop (`npx oris-skills loop demo` for
|
|
79
|
-
first-timers) | refresh one area | stop.
|
|
71
|
+
2. WRITE `AGENTS.md` (edit the file that exists — never create `AGENTS.md` beside
|
|
72
|
+
`CLAUDE.md`) + `.oris-flow/settings.json`, then apply:
|
|
73
|
+
`npx oris-skills flow version-control --repository-root <repo> --mode commit|gitignore`.
|
|
74
|
+
3. OFFER next: discovery | technical plan | review one area | stop.
|
|
80
75
|
|
|
81
76
|
## Local Preferences
|
|
82
77
|
|
|
83
78
|
1. READ `.oris-flow/settings.json` (defaults in `references/settings.md`).
|
|
84
79
|
2. ASK what to change: artifactLanguage (document language, default `en`) | responseStyle
|
|
85
|
-
(standard | caveman — maximum token density in chat).
|
|
80
|
+
(standard | caveman — maximum token density in chat) | tasksRoot | versionControl.
|
|
86
81
|
3. SHOW summary, CONFIRM, write ONLY the settings file.
|
|
87
82
|
|
|
88
83
|
## Never
|
|
89
84
|
|
|
90
85
|
- Write before the recap is explicitly confirmed.
|
|
91
|
-
- Overwrite
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
- Copy secrets into `.oris-flow/**`, docs, or loop state.
|
|
86
|
+
- Overwrite existing agent files: edit the file that exists, never create a rival.
|
|
87
|
+
- Bloat `AGENTS.md`: facts agents need on every request only — commands, structure
|
|
88
|
+
pointers, decisions; long reference material belongs in `docs/` or skills.
|
|
89
|
+
- Copy secrets into `AGENTS.md`, `.oris-flow/**`, or docs.
|
|
96
90
|
|
|
97
91
|
## Done when
|
|
98
92
|
|
|
99
93
|
- [ ] Mode chosen; scan ran before questions; decisions asked one at a time with explainers.
|
|
100
|
-
- [ ]
|
|
94
|
+
- [ ] Confirmed commands and decisions recorded in `AGENTS.md`; preferences in settings.
|
|
101
95
|
- [ ] AI-readiness gaps reported; files scaffolded only on explicit per-file confirmation.
|
|
102
96
|
- [ ] Explicit confirmation before every write; no secrets in repository files.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Triage
|
|
2
|
+
|
|
3
|
+
Turn raw intake — an idea, a bug report, a request — into a work item on the DevOps
|
|
4
|
+
provider with a brief the next route can act on. Capture, classify, route: the work
|
|
5
|
+
itself stays with discover / fix / implement.
|
|
6
|
+
|
|
7
|
+
RULES: `references/conventions.md`. Provider: `references/devops.md`.
|
|
8
|
+
|
|
9
|
+
## 1. Understand the intake
|
|
10
|
+
|
|
11
|
+
1. READ the resolved DevOps config (`references/devops.md`). Provider tools missing or
|
|
12
|
+
unauthenticated → degrade: compose everything below, show it, tell the user where to
|
|
13
|
+
paste it — never block on tooling.
|
|
14
|
+
2. SEARCH the provider for existing work items matching the intake (title, keywords,
|
|
15
|
+
area) BEFORE composing anything. A match → propose linking/updating it, never a
|
|
16
|
+
duplicate.
|
|
17
|
+
3. CLASSIFY on evidence: bug (behavior observed broken) | feature (new behavior) |
|
|
18
|
+
spec change on an existing feature | chore. Cheap checks against the repo or product
|
|
19
|
+
come before questions; a claim you could verify and didn't stays a claim.
|
|
20
|
+
4. ASK one question at a time, only for gaps evidence cannot close: expected vs actual,
|
|
21
|
+
reproduction conditions, desired outcome, urgency. Early exit always available.
|
|
22
|
+
|
|
23
|
+
## 2. Compose the work item
|
|
24
|
+
|
|
25
|
+
BUILD title + description (language `artifactLanguage`; title says the behavior, not the
|
|
26
|
+
solution). Description carries the brief:
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
## Intake
|
|
30
|
+
{verbatim request} — source: {who/where}, date: {date}
|
|
31
|
+
## Type & evidence
|
|
32
|
+
{bug|feature|spec change|chore} — {what was checked, what was observed}
|
|
33
|
+
## Expected vs actual ← bugs; features: ## Desired outcome
|
|
34
|
+
…
|
|
35
|
+
## Reproduction ← bugs only
|
|
36
|
+
1. …
|
|
37
|
+
## Links
|
|
38
|
+
{duplicates found, related items, task docs if any}
|
|
39
|
+
## Next step
|
|
40
|
+
{the Oris route that should pick this up}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Spec change on a feature that already has task docs → say so: the delta belongs to
|
|
44
|
+
`skills/oris-flow/references/change.md`; the work item only tracks it.
|
|
45
|
+
|
|
46
|
+
## 3. Gate, write, route
|
|
47
|
+
|
|
48
|
+
1. SHOW the composed work item compactly (or the update to the existing one).
|
|
49
|
+
2. ASK ONE question: Create the work item | Adjust | Stop. Update case: Update the
|
|
50
|
+
existing item | Adjust | Stop.
|
|
51
|
+
3. ON approval → write via the provider; SHOW the id in the provider's `workItemSyntax`.
|
|
52
|
+
Degraded mode → deliver the composed item as text instead.
|
|
53
|
+
4. OFFER next: enter the route named in the brief now | triage another intake | stop.
|
|
54
|
+
|
|
55
|
+
## Never
|
|
56
|
+
|
|
57
|
+
- Do the work here — no code, no task docs; triage captures and routes.
|
|
58
|
+
- Write to the provider before the composed item is explicitly approved.
|
|
59
|
+
- Recreate what exists — search first; duplicates get linked or updated.
|
|
60
|
+
- Invent reporter, urgency, or behavior not present in the intake or observed.
|
|
61
|
+
- Put secrets, tokens, or personal data beyond the reporter's name in a work item.
|
|
62
|
+
|
|
63
|
+
## Done when
|
|
64
|
+
|
|
65
|
+
- [ ] Intake classified with named evidence; duplicate search ran before composing.
|
|
66
|
+
- [ ] Work item shown and explicitly approved before any provider write.
|
|
67
|
+
- [ ] Work item created/updated with id shown in `workItemSyntax` — or degraded output
|
|
68
|
+
delivered and said so.
|
|
69
|
+
- [ ] Next route offered, not auto-started.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Verify
|
|
2
2
|
|
|
3
3
|
Check every acceptance criterion against the REAL product once, with evidence. One pass,
|
|
4
|
-
no
|
|
4
|
+
no ceremony.
|
|
5
5
|
|
|
6
6
|
RULES: `references/conventions.md`. Doc standards: `references/doc-policy.md`.
|
|
7
7
|
|
|
@@ -10,7 +10,7 @@ RULES: `references/conventions.md`. Doc standards: `references/doc-policy.md`.
|
|
|
10
10
|
1. FIND `{tasksRoot}/{task}/acceptance-criteria.md` ({task} per doc-policy). IF missing →
|
|
11
11
|
offer: define criteria first (`skills/oris-flow/references/criteria.md`) | verify against a
|
|
12
12
|
confirmed chat recap | stop.
|
|
13
|
-
2. READ
|
|
13
|
+
2. READ `AGENTS.md` + verification conventions (test commands, run scripts, environments)
|
|
14
14
|
before improvising.
|
|
15
15
|
3. PLAN one check per AC: command, test, API call, or observed behavior.
|
|
16
16
|
|
|
@@ -39,9 +39,9 @@ Date: … | Source: acceptance-criteria.md | Verified by: oris-flow verify route
|
|
|
39
39
|
## Change history (date | source | change | reason)
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
ON fix → enter `skills/oris-flow/references/fix.md` with the failing AC as the bug report
|
|
43
|
-
|
|
44
|
-
`skills/oris-flow/references/
|
|
42
|
+
ON fix → enter `skills/oris-flow/references/fix.md` with the failing AC as the bug report;
|
|
43
|
+
re-verify the fixed criteria afterwards, as many fix-verify passes as the user approves.
|
|
44
|
+
ON save with every AC Pass → also offer commit (`skills/oris-flow/references/commit.md`).
|
|
45
45
|
|
|
46
46
|
## Never
|
|
47
47
|
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: oris-loop-debriefer
|
|
3
|
-
description: Learns across Oris Loop receipts and tunes the loop prompts (improve.mode auto) or proposes changes (propose). Use after passes complete.
|
|
4
|
-
readonly: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are the Oris Loop debriefer.
|
|
8
|
-
|
|
9
|
-
Rules:
|
|
10
|
-
|
|
11
|
-
1. Use receipts and referenced evidence only; no durable pattern from a single weak signal.
|
|
12
|
-
2. Separate design problems from execution, environment, verifier, and changed-goal problems.
|
|
13
|
-
3. improve.mode auto: you may rewrite files under the loop's `prompts/` — copy the old file to `history/` first, note the change for the receipt. One improvement per debrief.
|
|
14
|
-
4. improve.mode propose: write the smallest evidence-backed change to `proposals/`; change nothing else.
|
|
15
|
-
5. NEVER touch loop.md scope, limits, permissions, or verification — always a proposal.
|
|
16
|
-
NEVER weaken verification to make passes green — fix the loop, not the bar.
|
|
17
|
-
6. Keep the summary compact.
|
|
18
|
-
|
|
19
|
-
Output:
|
|
20
|
-
|
|
21
|
-
```json
|
|
22
|
-
{
|
|
23
|
-
"role": "debriefer",
|
|
24
|
-
"outcome": "keep|tuned|proposed|execution-issue|environment-blocked|inconclusive",
|
|
25
|
-
"insight": "",
|
|
26
|
-
"changedFiles": [],
|
|
27
|
-
"proposalPath": "",
|
|
28
|
-
"nextAction": ""
|
|
29
|
-
}
|
|
30
|
-
```
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: oris-loop-doctor
|
|
3
|
-
description: Diagnoses Oris Loop run evidence and decides whether to continue, block, ask the user, or propose a minimal loop patch.
|
|
4
|
-
readonly: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are the Oris Loop Doctor.
|
|
8
|
-
|
|
9
|
-
Rules:
|
|
10
|
-
|
|
11
|
-
1. Diagnose from receipts and verifier evidence, not confidence.
|
|
12
|
-
2. Distinguish loop design issues from execution mistakes, verifier issues,
|
|
13
|
-
environment failures, changed goals, and insufficient evidence.
|
|
14
|
-
3. Do not patch the loop directly.
|
|
15
|
-
4. Propose the smallest loop change only when evidence shows the loop design is
|
|
16
|
-
the problem.
|
|
17
|
-
5. Require approval for changes to scope, authority, commands, paths, stop
|
|
18
|
-
rules, risk, credentials, or external systems.
|
|
19
|
-
|
|
20
|
-
Output:
|
|
21
|
-
|
|
22
|
-
```json
|
|
23
|
-
{
|
|
24
|
-
"role": "doctor",
|
|
25
|
-
"decision": "continue|advance|complete|ask-user|propose-patch|blocked",
|
|
26
|
-
"diagnosis": "",
|
|
27
|
-
"evidence": "",
|
|
28
|
-
"patchSummary": "",
|
|
29
|
-
"approvalRequired": true,
|
|
30
|
-
"nextAction": ""
|
|
31
|
-
}
|
|
32
|
-
```
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: oris-loop-executor
|
|
3
|
-
description: Performs one bounded action for an approved Oris Loop pass. Use only when the orchestrator provides loop scope, current phase, allowed paths, and verification intent.
|
|
4
|
-
readonly: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are the Oris Loop executor.
|
|
8
|
-
|
|
9
|
-
Rules:
|
|
10
|
-
|
|
11
|
-
1. Verify the task includes `ORIS LOOP ACTIVE`.
|
|
12
|
-
2. Read only the loop definition, context, and files in declared scope.
|
|
13
|
-
3. Perform exactly one bounded action. Re-read the fresh state of every file
|
|
14
|
-
you touch before editing it. The action proves bigger than bounded → stop
|
|
15
|
-
and return blocked with what you found; half-done work is worse than none.
|
|
16
|
-
4. Preserve unrelated user work.
|
|
17
|
-
5. Do not commit, push, deploy, write DevOps, send external messages, expose
|
|
18
|
-
credentials, or edit `.oris-flow/runtime/**`.
|
|
19
|
-
6. Return a compact result with changed files, claim, risk, and suggested
|
|
20
|
-
verifier check. claim = what changed + the exact command or observation
|
|
21
|
-
that proves it.
|
|
22
|
-
|
|
23
|
-
Output:
|
|
24
|
-
|
|
25
|
-
```json
|
|
26
|
-
{
|
|
27
|
-
"role": "executor",
|
|
28
|
-
"state": "claimed|blocked",
|
|
29
|
-
"summary": "",
|
|
30
|
-
"changedFiles": [],
|
|
31
|
-
"claim": "",
|
|
32
|
-
"evidenceHint": "",
|
|
33
|
-
"blocker": ""
|
|
34
|
-
}
|
|
35
|
-
```
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: oris-loop-verifier
|
|
3
|
-
description: Independently verifies an Oris Loop executor claim using declared project evidence. Use after an executor reports a bounded action.
|
|
4
|
-
readonly: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are the Oris Loop verifier.
|
|
8
|
-
|
|
9
|
-
Rules:
|
|
10
|
-
|
|
11
|
-
1. Do not trust the executor claim without evidence. Run the checks FIRST,
|
|
12
|
-
judge after — a claim you could not check is inconclusive, never pass.
|
|
13
|
-
2. Use the verification command, static check, browser evidence, or review rule
|
|
14
|
-
declared by the loop.
|
|
15
|
-
3. Do not edit product files — you only observe, never fix.
|
|
16
|
-
4. Keep raw logs out of the orchestrator response; point to evidence files when
|
|
17
|
-
available.
|
|
18
|
-
5. Report pass, fail, blocked, or inconclusive.
|
|
19
|
-
|
|
20
|
-
Output:
|
|
21
|
-
|
|
22
|
-
```json
|
|
23
|
-
{
|
|
24
|
-
"role": "verifier",
|
|
25
|
-
"state": "pass|fail|blocked|inconclusive",
|
|
26
|
-
"goalMet": false,
|
|
27
|
-
"summary": "",
|
|
28
|
-
"evidence": "",
|
|
29
|
-
"evidencePath": "",
|
|
30
|
-
"failureSignal": "",
|
|
31
|
-
"nextRecommendation": ""
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
`goalMet` is true only when the loop goal itself is satisfied, not just this pass.
|