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.
Files changed (86) hide show
  1. package/.cursor-plugin/plugin.json +2 -3
  2. package/CHANGELOG.md +24 -6
  3. package/README.md +28 -60
  4. package/docs/architecture.md +15 -11
  5. package/docs/distribution.md +3 -3
  6. package/docs/maintainer-guide.md +4 -4
  7. package/docs/user-guide.md +12 -20
  8. package/package.json +3 -6
  9. package/references/clean-code-checklist.md +2 -2
  10. package/references/conventions.md +36 -16
  11. package/references/doc-policy.md +5 -5
  12. package/references/research.md +45 -0
  13. package/references/settings.md +11 -5
  14. package/references/settings.schema.json +10 -0
  15. package/scripts/flow/oris-flow-layout.mjs +0 -16
  16. package/scripts/flow/oris-flow-scan.mjs +32 -317
  17. package/scripts/flow/oris-gitignore.mjs +1 -5
  18. package/scripts/install/install-user-skills.mjs +3 -3
  19. package/scripts/install/uninstall-user-skills.mjs +2 -29
  20. package/scripts/oris-skills.mjs +0 -47
  21. package/scripts/tests/run-all-tests.mjs +1 -9
  22. package/scripts/tests/test-cleanliness.mjs +54 -0
  23. package/scripts/tests/test-oris-flow-scan.mjs +21 -91
  24. package/scripts/tests/test-routing-lifecycle.mjs +24 -54
  25. package/scripts/tests/test-schemas.mjs +17 -31
  26. package/scripts/tests/test-skill-style.mjs +5 -2
  27. package/skills/oris-flow/SKILL.md +21 -11
  28. package/skills/oris-flow/agents/openai.yaml +1 -1
  29. package/skills/oris-flow/references/architecture.md +6 -3
  30. package/skills/oris-flow/references/change.md +3 -0
  31. package/skills/oris-flow/references/commit.md +9 -8
  32. package/skills/oris-flow/references/criteria.md +9 -5
  33. package/skills/oris-flow/references/discover.md +2 -2
  34. package/skills/oris-flow/references/docs.md +5 -1
  35. package/skills/oris-flow/references/fix.md +10 -5
  36. package/skills/oris-flow/references/handoff.md +67 -0
  37. package/skills/oris-flow/references/help.md +3 -6
  38. package/skills/oris-flow/references/implement.md +7 -4
  39. package/skills/oris-flow/references/new.md +6 -6
  40. package/skills/oris-flow/references/plan.md +7 -2
  41. package/skills/oris-flow/references/pr.md +2 -2
  42. package/skills/oris-flow/references/setup.md +33 -39
  43. package/skills/oris-flow/references/triage.md +69 -0
  44. package/skills/oris-flow/references/verify.md +5 -5
  45. package/agents/oris-loop-debriefer.md +0 -30
  46. package/agents/oris-loop-doctor.md +0 -32
  47. package/agents/oris-loop-executor.md +0 -35
  48. package/agents/oris-loop-verifier.md +0 -35
  49. package/references/loop-adapter.schema.json +0 -93
  50. package/references/loop-contract.md +0 -126
  51. package/references/loop.schema.json +0 -156
  52. package/references/repo-map.md +0 -51
  53. package/references/repo-map.schema.json +0 -213
  54. package/scripts/flow/oris-flow-clean-runtime.mjs +0 -182
  55. package/scripts/install/generate-agent-adapters.mjs +0 -81
  56. package/scripts/loop/oris-loop-bootstrap.mjs +0 -383
  57. package/scripts/loop/oris-loop-bundle.mjs +0 -22
  58. package/scripts/loop/oris-loop-chat.mjs +0 -396
  59. package/scripts/loop/oris-loop-demo.mjs +0 -171
  60. package/scripts/loop/oris-loop-document.mjs +0 -196
  61. package/scripts/loop/oris-loop-dry-run.mjs +0 -114
  62. package/scripts/loop/oris-loop-fixtures.mjs +0 -149
  63. package/scripts/loop/oris-loop-list.mjs +0 -81
  64. package/scripts/loop/oris-loop-paths.mjs +0 -232
  65. package/scripts/loop/oris-loop-run.mjs +0 -301
  66. package/scripts/loop/oris-loop-stop.mjs +0 -358
  67. package/scripts/loop/oris-loop-templates.mjs +0 -80
  68. package/scripts/loop/oris-loop-verify.mjs +0 -205
  69. package/scripts/tests/test-agent-adapters.mjs +0 -70
  70. package/scripts/tests/test-oris-1-0-cleanliness.mjs +0 -58
  71. package/scripts/tests/test-oris-flow-clean-runtime.mjs +0 -75
  72. package/scripts/tests/test-oris-loop-bootstrap.mjs +0 -94
  73. package/scripts/tests/test-oris-loop-document.mjs +0 -148
  74. package/scripts/tests/test-oris-loop-list.mjs +0 -74
  75. package/scripts/tests/test-oris-loop-run.mjs +0 -71
  76. package/scripts/tests/test-oris-loop-smoke.mjs +0 -120
  77. package/scripts/tests/test-oris-loop-stop.mjs +0 -432
  78. package/skills/oris-flow/references/loop-craft.md +0 -59
  79. package/skills/oris-flow/references/loop-improve.md +0 -32
  80. package/skills/oris-flow/references/loop-run.md +0 -47
  81. package/skills/oris-flow/references/loop.md +0 -56
  82. package/skills/oris-flow/templates/debriefer.md +0 -19
  83. package/skills/oris-flow/templates/doctor.md +0 -22
  84. package/skills/oris-flow/templates/executor.md +0 -25
  85. package/skills/oris-flow/templates/orchestrator.md +0 -36
  86. 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. Offer next steps without auto-starting them.
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
- ## Triage
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
- - SUMMARIZE: root cause proposed minimal fix files → verification plan.
23
- CONFIRM explicitly.
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
- | Hook not firing | `npx oris-skills loop verify --temp` self-checks the runtime; `npx oris-skills loop bootstrap` re-arms repo hooks. |
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 (manifest JSON, hook mechanics) unless the user asks for technical
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 setup map, project standards, local skills/rules, tests and build conventions for
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 (setup maps of sibling
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. RUN `npx oris-skills flow scan --repository-root <repo> --write` — manifest + maps;
46
- the commands just verified mark `confirmed`.
47
- 2. RUN `npx oris-skills loop bootstrap --repository-root <repo>`.
48
- 3. tasksRoot: `.oris-flow/tasks` (default — the project stays clean).
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
- - [ ] Manifest written with confirmed commands; loop bootstrapped.
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, setup map, standards, code, tests, build scripts.
13
- 2. PREFER existing project patterns over new abstractions. Keep uncertainty visible.
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 (Azure DevOps MCP `oris-devops`, or `gh` for GitHub)
26
- read from `references/devops.md`. Missing provider auth → say so; never guess credentials.
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 — manifest + maps + AI-readiness + loop
4
- readiness. ADAPT to what the repo IS; never force one structure. Writes ONLY after the
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`. Map format: `references/repo-map.md`.
8
- IF the repo is empty or brand-new → route to `skills/oris-flow/references/new.md` instead.
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 `.oris-flow/manifest.json` exists → CHECK freshness first:
13
- `npx oris-skills flow scan --repository-root <repo> --check` — `fresh: true` → say so
14
- (a rescan would be a no-op); stale the `changedFiles` list names the areas worth
15
- refreshing. THEN ask ONE question with these options:
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), sections, `truncated`
31
- flag. Scan output = draft evidence, not truth.
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 repo is small enough that the baseline already
37
- answers every §2 decision — say you skipped and why. No agent tool on the platform →
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 which map sections matter and how criteria/verify observe behavior.
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 `setup.tasksRoot`.
50
- - **Verify commands** — show detected build+test commands; user confirms or corrects
51
- mark `confirmed`. They feed implement, verify, and loop VERIFIER; unconfirmed = a guess.
52
- - **Version control for `.oris-flow/`** — commit (team default) or gitignore. Task docs
53
- follow the same choice.
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 loop — agents verify instead of guessing |
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 `.oris-flow/manifest.json` + `.oris-flow/maps/**` (confirmed facts get
75
- confidence `confirmed` so refresh preserves them), then apply:
76
- - `npx oris-skills flow version-control --repository-root <repo> --mode commit|gitignore`
77
- - `npx oris-skills loop bootstrap --repository-root <repo>` when adapter/hooks are missing.
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 `confirmed` values on refresh the scan merges; missing evidence marks
92
- stale, never deletes.
93
- - Overwrite existing agent files: edit the file that exists, never create `AGENTS.md`
94
- beside `CLAUDE.md`.
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
- - [ ] Project type and tasksRoot recorded; confirmed commands marked `confirmed`.
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 loop ceremony.
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 setup map + verification conventions (test commands, run scripts, environments)
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
- LONG iterative fixing with re-verification each pass recommend
44
- `skills/oris-flow/references/loop.md` only when one fix-verify pass is clearly not enough.
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.