oris-skills 3.0.1 → 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/README.md CHANGED
@@ -30,7 +30,9 @@ fixes the colleague part with three rules baked into every interaction:
30
30
 
31
31
  `/oris-flow` reads your intent and enters the right route in the same chat — no other
32
32
  command exists. Say "the login button does nothing" and you are in **fix**; say "the
33
- client changed their mind about invoicing" and you are in **change**.
33
+ client changed their mind about invoicing" and you are in **change**; say "a client
34
+ reported this, park it" and **triage** captures it as a work item; say "I'm out of
35
+ context" and **handoff** packages the session for the next one.
34
36
 
35
37
  ```text
36
38
  idea ──► discover ──► criteria ──► plan ──► implement ──► verify
@@ -42,6 +44,7 @@ client changed their mind about invoicing" and you are in **change**.
42
44
  |-------|---------|
43
45
  | **setup** | the repo made agent-ready: detected commands and structure confirmed into `AGENTS.md`; AI-readiness check |
44
46
  | **new** | a greenfield project born agent-native: sparse `AGENTS.md`, domain glossary, first ADR, red→green test observed |
47
+ | **triage** | raw intake — an idea, a bug report — becomes a work item with an agent-ready brief, duplicates linked, routed onward |
45
48
  | **discover** | business-first interview → `functional-analysis.md` |
46
49
  | **criteria** | observable, stable-ID acceptance criteria → `acceptance-criteria.md` |
47
50
  | **plan** | technical interview → `implementation-plan.md` with bounded, verifiable steps — external APIs verified against their docs, sources recorded |
@@ -50,6 +53,7 @@ client changed their mind about invoicing" and you are in **change**.
50
53
  | **change** | spec delta interviewed, **all** documents updated in one approved pass → `change-log.md` |
51
54
  | **architecture / docs / help** | deepening review, doc alignment, answers |
52
55
  | **commit / pr** | Conventional Commits and English PRs, work item linked, always gated |
56
+ | **handoff** | session state packaged outside the repo — decisions, evidence, next move — so a fresh session resumes exactly there |
53
57
 
54
58
  Every route follows one skeleton — what to do, what **Never** to do, and a **Done when**
55
59
  checklist — enforced by the test suite, so the discipline survives refactors.
@@ -6,9 +6,9 @@ Install once, remember one command:
6
6
  npx oris-skills@latest install # detects Cursor / Claude Code / Codex / Copilot (VS Code)
7
7
  ```
8
8
 
9
- Then type **`/oris-flow`** in your agent chat. It routes your request or shows a short menu (setup, new project, discovery, criteria, plan, implement/fix, verify, spec change, architecture review, docs, commit, pull request, help). The skill never triggers itself — you invoke it. On Codex use the installed `/oris-flow` prompt; on Copilot Chat use `/oris-flow` too (enable the VS Code setting `chat.promptFiles` once). Any other agent: tell it to read `~/.oris/oris-flow.md`.
9
+ Then type **`/oris-flow`** in your agent chat. It routes your request or shows a short menu (setup, new project, triage, discovery, criteria, plan, implement/fix, verify, spec change, architecture review, docs, commit, pull request, handoff, help). The skill never triggers itself — you invoke it. On Codex use the installed `/oris-flow` prompt; on Copilot Chat use `/oris-flow` too (enable the VS Code setting `chat.promptFiles` once). Any other agent: tell it to read `~/.oris/oris-flow.md`.
10
10
 
11
- The flow in one line: **discover → criteria → plan → implement → verify**, with `fix` for bugs and `change` when the spec changes mid-flight (it updates all task docs together and logs `CH-xxx` history). `new` bootstraps an AI-driven project from scratch; `architecture` maps deepening/refactor opportunities. Task documents live in `.oris-flow/tasks/` by default — your project's own docs stay untouched.
11
+ The flow in one line: **discover → criteria → plan → implement → verify**, with `fix` for bugs and `change` when the spec changes mid-flight (it updates all task docs together and logs `CH-xxx` history). `new` bootstraps an AI-driven project from scratch; `architecture` maps deepening/refactor opportunities. `triage` turns raw ideas and bug reports into work items on your DevOps board before the flow starts; `handoff` packages a session's state — decisions, evidence, next move — so a fresh session resumes exactly where this one stopped. Task documents live in `.oris-flow/tasks/` by default — your project's own docs stay untouched.
12
12
 
13
13
  ## What setup leaves in your repo
14
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oris-skills",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "description": "Oris Skills: one entry point (/oris-flow) and a guided discovery-to-implementation flow for Cursor, Claude Code, and Codex.",
5
5
  "license": "MIT",
6
6
  "author": "Davide Baldassarre",
@@ -1,6 +1,6 @@
1
1
  # Clean Code Checklist
2
2
 
3
- Used by `oris-flow-implement` and `oris-flow-fix` while closing work: clean what YOU introduced, in the files you touched. Investigate before concluding; absence in one file is not proof of dead code.
3
+ Used by `skills/oris-flow/references/implement.md` and `skills/oris-flow/references/fix.md` while closing work: clean what YOU introduced, in the files you touched. Investigate before concluding; absence in one file is not proof of dead code.
4
4
 
5
5
  ## Check, in the touched scope only
6
6
 
@@ -15,6 +15,6 @@ Used by `oris-flow-implement` and `oris-flow-fix` while closing work: clean what
15
15
 
16
16
  Before removing anything: search references and call sites (including DI registration, reflection, dynamic imports, routing, code generation, framework conventions). Tests, config, or registration may still require the symbol.
17
17
 
18
- ## Never here
18
+ ## Never
19
19
 
20
20
  Bug fixes (→ `skills/oris-flow/references/fix.md`), architectural redesign, cross-feature refactors, DevOps, drive-by cleanup of code you did not touch.
@@ -37,16 +37,29 @@ The `oris-skills` CLI is NOT installed globally. ALWAYS invoke it as `npx oris-s
37
37
  MORE options → split into a two-level question (category first) or use the deliberate
38
38
  text fallback above.
39
39
  - ONE question per turn. Recommended answer FIRST.
40
+ - VISIBILITY: assume the user sees ONLY what the question tool itself renders — chat text
41
+ emitted in the same turn as the tool call can be hidden by the platform UI. Therefore
42
+ everything the answer depends on rides INSIDE the call: the recap/context in the
43
+ `question` text (compact — counted facts, not prose), each option's meaning and
44
+ consequence in its description. NEVER put a recap or summary in chat text and then call
45
+ the question tool in the same turn — the user may see the bare question and nothing else.
40
46
  - ALWAYS include, in the user's language:
41
- - `Explain the options` / `Spiega le opzioni` — explain, then re-ask the same question.
47
+ - `Explain the options` / `Spiega le opzioni` — when picked, RE-ASK the same question
48
+ WITH the explanations embedded in the call itself: every option's description states
49
+ what it means and what happens if chosen; the `question` text may add one context
50
+ line. Re-asking the question unchanged, or explaining only in chat text before the
51
+ call, is a failure — the user reported seeing the bare question again. In text-fallback
52
+ menus: explanations first, then the full lettered list again, in ONE message.
42
53
  - During interviews: `Enough questions — proceed` / `Basta domande — procedi` (early exit → go to the generation gate; NOT approval to write).
43
54
  - NEVER ask what the workspace, docs, code, or setup map already answer. Explore first.
44
55
 
45
56
  ## Generation gates
46
57
 
47
58
  - Standard labels, localized: `Generate the document` / `Genera il documento`, `Approve document` / `Approva documento`, `Continue the interview` / `Continua l'intervista`, `Cancel` / `Annulla`.
48
- - NEVER write documents before the explicit gate choice. Exception: `oris-flow-criteria` writes first, then asks ONCE — the document is confirmed only on approval.
49
- - After a document is written: concise summary + contextual next-step menu. NEVER auto-start the next phase.
59
+ - NEVER write documents before the explicit gate choice. Exception: `skills/oris-flow/references/criteria.md` writes first, then asks ONCE — the document is confirmed only on approval.
60
+ - After a document is written: concise summary + contextual next-step menu. The summary
61
+ rides inside the next-step question (`## Questions` VISIBILITY rule) — never as chat
62
+ text the tool call can hide. NEVER auto-start the next phase.
50
63
 
51
64
  ## Language
52
65
 
@@ -59,7 +59,8 @@ test("shared conventions centralize question, language, and gate rules", () => {
59
59
  assert.match(conventions, /`Continua l'intervista`/);
60
60
  assert.match(conventions, /`Approva documento`/);
61
61
  assert.match(conventions, /`Annulla`/);
62
- assert.match(conventions, /oris-flow-criteria.*writes first/i, "the criteria write-first exception must live where skills read it");
62
+ assert.match(conventions, /skills\/oris-flow\/references\/criteria\.md`.*writes first/i, "the criteria write-first exception must live where skills read it");
63
+ assert.doesNotMatch(conventions, /oris-flow-(criteria|implement|fix)/, "destinations are named by file path, never by prose nickname");
63
64
  assert.equal(exists("references/questions.md"), false, "questions.md was merged into conventions.md");
64
65
  });
65
66
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oris-flow
3
- description: The one Oris skill - read the intent, pick ONE route, apply it in the same chat. Routes setup, new project, discovery, acceptance criteria, technical plan, implement, fix, verify, spec change, architecture review, docs, commit, pull request, and help.
3
+ description: The one Oris skill - read the intent, pick ONE route, apply it in the same chat. Routes setup, new, triage, discover, criteria, plan, implement, fix, verify, change, architecture, docs, commit, pr, handoff, and help.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -23,6 +23,7 @@ Match the desired outcome to ONE route, then apply its reference:
23
23
  |-------|----------------------|-------|
24
24
  | setup | prepare / map / refresh an existing repo for Oris and agents | `skills/oris-flow/references/setup.md` |
25
25
  | new | bootstrap a project from scratch, greenfield, empty directory | `skills/oris-flow/references/new.md` |
26
+ | triage | capture an idea, bug report, or request as a work item with an agent-ready brief | `skills/oris-flow/references/triage.md` |
26
27
  | discover | understand or define product behavior, functional analysis | `skills/oris-flow/references/discover.md` |
27
28
  | criteria | acceptance criteria, QA checks, testable scenarios | `skills/oris-flow/references/criteria.md` |
28
29
  | plan | a technical implementation plan before coding | `skills/oris-flow/references/plan.md` |
@@ -34,6 +35,7 @@ Match the desired outcome to ONE route, then apply its reference:
34
35
  | docs | update task docs after a change | `skills/oris-flow/references/docs.md` |
35
36
  | commit | commit changes with the Oris standard — Conventional Commits, work item linked | `skills/oris-flow/references/commit.md` |
36
37
  | pr | open or update a pull request, English title/description linked to the work item | `skills/oris-flow/references/pr.md` |
38
+ | handoff | package session state — decisions, evidence, next move — to resume in a fresh session | `skills/oris-flow/references/handoff.md` |
37
39
  | help | how Oris works, install, update, troubleshooting | `skills/oris-flow/references/help.md` |
38
40
 
39
41
  ## Precedence (the calls that look ambiguous)
@@ -43,13 +45,18 @@ Match the desired outcome to ONE route, then apply its reference:
43
45
  2. RETHINK beats build: analyze, question, or reshape existing work →
44
46
  route to the interview owner (discover / plan / change), NEVER straight to implement.
45
47
  3. CHANGED spec on a feature that already has task docs or code → change, not discover —
46
- change owns the delta and the history.
48
+ change owns the delta and the history. Spec unchanged but code/reality moved on and the
49
+ task docs lag behind → docs, not change.
47
50
  4. BROKEN behavior → fix. NEW planned work → implement. The menu answer "Implement or
48
51
  fix" gets exactly one follow-up question to split them.
49
52
  5. EMPTY directory or from-scratch intent → new. Existing repo never touched by Oris
50
53
  (no `AGENTS.md`, no `.oris-flow/`) → recommend setup first; respect the user's choice.
51
54
  6. COMMIT staged/working changes with the standard → commit. OPEN or update a pull request
52
55
  → pr. Neither writes product code — they package and publish what implement/fix produced.
56
+ 7. CAPTURE work for later (an idea, a report, backlog intake) → triage — it creates the
57
+ work item and stops. DOING the work now → discover / fix / implement.
58
+ 8. CONTINUE elsewhere — session ending, context full, "pass this to another agent" →
59
+ handoff.
53
60
 
54
61
  ## Menu (low confidence)
55
62
 
@@ -59,6 +66,7 @@ fallback in `references/conventions.md` `## Questions`), options:
59
66
 
60
67
  - Setup repository
61
68
  - New project from scratch
69
+ - Capture an idea or bug as a work item (triage)
62
70
  - Understand / define behavior (discovery)
63
71
  - Acceptance criteria
64
72
  - Technical plan
@@ -69,11 +77,15 @@ fallback in `references/conventions.md` `## Questions`), options:
69
77
  - Update docs
70
78
  - Commit changes
71
79
  - Open a pull request
80
+ - Hand off this session (continue elsewhere)
72
81
  - Help
73
82
  - Explain the options / Spiega le opzioni
74
83
 
75
- IF "Explain the options" → explain briefly, re-ask the same question.
76
- Every other label maps 1:1 to its route in the table above.
84
+ IF "Explain the options" → ONE message that contains BOTH: one explanation line per
85
+ option, THEN the full lettered list again below the explanations. Re-asking without the
86
+ explanations visible in that same message is the failure this rule exists to prevent.
87
+ Every other label maps to its route in the table above; "Implement or fix" is the one
88
+ label that splits, with exactly one follow-up question (Precedence 4).
77
89
 
78
90
  ## Never
79
91
 
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Oris Flow"
3
3
  short_description: "Start the Oris workflow menu"
4
- default_prompt: "Use $oris-flow to choose the right Oris workflow command."
4
+ default_prompt: "Use $oris-flow to enter the right Oris workflow."
@@ -37,10 +37,13 @@ WRITE a self-contained HTML file to the OS temp dir (`architecture-review-<times
37
37
  OPEN it (`start` | `open` | `xdg-open`), TELL the absolute path.
38
38
 
39
39
  FORMAT: Tailwind CDN + Mermaid CDN. Per candidate, one card:
40
- - title (names the deepening) + strength badge: `Strong` | `Worth exploring` | `Speculative`;
40
+ - title (names the deepening) + strength badge `Strong` (friction observed in the code,
41
+ fix shape clear) | `Worth exploring` (friction observed, fix shape uncertain) |
42
+ `Speculative` (pattern suggests it, not yet observed);
41
43
  - files (monospaced), Problem (one sentence), Solution (one sentence);
42
44
  - Before/After diagram side by side — Mermaid for graph-shaped, hand-built divs/SVG for
43
- mass diagrams; if the diagram needs a paragraph, redraw the diagram;
45
+ mass diagrams; the diagram must explain itself without a caption if it needs one,
46
+ simplify the diagram;
44
47
  - wins as bullets ≤6 words, glossary terms only — never "cleaner code";
45
48
  - ADR conflict → amber callout ("contradicts ADR-0007 — worth reopening because…").
46
49
 
@@ -3,6 +3,9 @@
3
3
  Specs changed while the feature exists (documented, planned, or half-built). Understand
4
4
  the delta, update EVERYTHING together, keep the history traceable.
5
5
 
6
+ BOUNDARY: the business spec MOVED → this route. Spec unchanged but code/reality moved on
7
+ and the docs lag behind → `skills/oris-flow/references/docs.md`.
8
+
6
9
  RULES: `references/conventions.md`. Doc standards: `references/doc-policy.md`.
7
10
 
8
11
  ## Delta interview
@@ -12,9 +12,13 @@ RULES: `references/conventions.md`. Doc standards: `references/doc-policy.md`.
12
12
  preferred, never required — say once when missing) > current UI > code and tests.
13
13
  2. DEDUCE create vs update: existing `acceptance-criteria.md` → update, PRESERVE IDs.
14
14
  3. IDs: `AC-001`, `AC-002`, … stable across revisions.
15
- 4. Each scenario declares ALL of: role + starting state · deterministic data · numbered
16
- user steps · observable outcome under the step that causes it · negative coverage ·
17
- regressions to keep.
15
+ 4. Each scenario declares ALL of:
16
+ - role + starting state;
17
+ - deterministic data;
18
+ - numbered user steps;
19
+ - observable outcome under the step that causes it;
20
+ - negative coverage;
21
+ - regressions to keep.
18
22
  5. CLASSIFY each: `Verifiable` | `Needs setup/data` | `Blocked by Open QA`.
19
23
  6. DISCARD criteria not checkable through observable product behavior. Unbuilt features:
20
24
  only confirmed intended behavior.
@@ -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
 
@@ -5,7 +5,7 @@ any edit, evidence before done.
5
5
 
6
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).
@@ -37,7 +37,8 @@ RULES: `references/conventions.md`. Research: `references/research.md`.
37
37
  1. RUN the reproduction + targeted tests; broaden if the surface is shared.
38
38
  2. SUMMARIZE: cause, change, verification, residual risk.
39
39
  3. RECOMMEND: `skills/oris-flow/references/verify.md` when criteria exist; docs update
40
- (`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.
41
42
 
42
43
  ## Never
43
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.
@@ -12,6 +12,8 @@ details on request.
12
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`. |
13
13
  | Uninstall / reinstall | `npx oris-skills uninstall` / `npx oris-skills reinstall` (preview with `--dry-run`). |
14
14
  | Skill missing after install | Reload the agent; check `~/.oris/oris-skills/` exists; re-run install with `--force`. |
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. |
15
17
  | Change document language / chat verbosity | `/oris-flow` → Setup (settings live in `.oris-flow/settings.json`). |
16
18
  | Ultra-short answers | `/oris-flow` → Setup → set `responseStyle: caveman` — chat shrinks to maximum token density; documents stay complete. |
17
19
 
@@ -34,7 +34,8 @@ RULES: `references/conventions.md`. Research: `references/research.md`.
34
34
  1. RUN targeted verification first; broaden when the touched surface is shared.
35
35
  2. SUMMARIZE: touched files, verification results, residual risk.
36
36
  3. RECOMMEND next: `skills/oris-flow/references/verify.md` when acceptance criteria exist;
37
- 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.
38
39
 
39
40
  ## Never
40
41
 
@@ -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
 
@@ -5,7 +5,8 @@ preferences in `.oris-flow/settings.json`, AI-readiness checked. ADAPT to what t
5
5
  IS; never force one structure. Writes ONLY after the user confirms the recap.
6
6
 
7
7
  RULES: `references/conventions.md`. Settings: `references/settings.md`.
8
- IF the repo is empty or brand-new → route to `skills/oris-flow/references/new.md` instead.
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
 
@@ -28,9 +29,9 @@ ELSE → create from scratch.
28
29
  4. FAN OUT parallel subagent scans (docs, frontend, backend/data, tests/build, local
29
30
  skills/rules) by DEFAULT whenever the repo has more than one of those areas —
30
31
  entering setup is the user's request to spawn (`references/conventions.md`
31
- `## Subagents`). SKIP only when the repo is small enough that the baseline already
32
- answers every §2 decision — say you skipped and why. No agent tool on the platform →
33
- 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.
34
35
 
35
36
  ## 2. Present findings, decide one at a time
36
37
 
@@ -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.
@@ -41,6 +41,7 @@ Date: … | Source: acceptance-criteria.md | Verified by: oris-flow verify route
41
41
 
42
42
  ON fix → enter `skills/oris-flow/references/fix.md` with the failing AC as the bug report;
43
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`).
44
45
 
45
46
  ## Never
46
47