oris-skills 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.cursor-plugin/plugin.json +31 -0
  2. package/LICENSE +21 -0
  3. package/README.md +67 -0
  4. package/agents/oris-loop-debriefer.md +29 -0
  5. package/agents/oris-loop-doctor.md +32 -0
  6. package/agents/oris-loop-executor.md +32 -0
  7. package/agents/oris-loop-verifier.md +31 -0
  8. package/docs/architecture.md +26 -0
  9. package/docs/distribution.md +38 -0
  10. package/docs/maintainer-guide.md +32 -0
  11. package/docs/user-guide.md +42 -0
  12. package/package.json +49 -0
  13. package/references/clean-code-checklist.md +107 -0
  14. package/references/conventions.md +39 -0
  15. package/references/doc-policy.md +24 -0
  16. package/references/loop-adapter.schema.json +126 -0
  17. package/references/loop-contract.md +119 -0
  18. package/references/loop.schema.json +143 -0
  19. package/references/questions.md +38 -0
  20. package/references/repo-map.md +53 -0
  21. package/references/repo-map.schema.json +198 -0
  22. package/references/settings.md +35 -0
  23. package/references/settings.schema.json +75 -0
  24. package/scripts/flow/oris-flow-clean-runtime.mjs +182 -0
  25. package/scripts/flow/oris-flow-layout.mjs +53 -0
  26. package/scripts/flow/oris-flow-scan.mjs +350 -0
  27. package/scripts/flow/oris-flow-version-control.mjs +42 -0
  28. package/scripts/flow/oris-gitignore.mjs +79 -0
  29. package/scripts/install/generate-agent-adapters.mjs +74 -0
  30. package/scripts/install/install-user-skills.mjs +271 -0
  31. package/scripts/install/uninstall-user-skills.mjs +163 -0
  32. package/scripts/loop/oris-loop-bootstrap.mjs +383 -0
  33. package/scripts/loop/oris-loop-bundle.mjs +22 -0
  34. package/scripts/loop/oris-loop-chat.mjs +408 -0
  35. package/scripts/loop/oris-loop-demo.mjs +180 -0
  36. package/scripts/loop/oris-loop-document.mjs +179 -0
  37. package/scripts/loop/oris-loop-dry-run.mjs +110 -0
  38. package/scripts/loop/oris-loop-fixtures.mjs +148 -0
  39. package/scripts/loop/oris-loop-list.mjs +81 -0
  40. package/scripts/loop/oris-loop-paths.mjs +232 -0
  41. package/scripts/loop/oris-loop-run.mjs +241 -0
  42. package/scripts/loop/oris-loop-stop.mjs +319 -0
  43. package/scripts/loop/oris-loop-templates.mjs +77 -0
  44. package/scripts/loop/oris-loop-verify.mjs +206 -0
  45. package/scripts/oris-skills.mjs +116 -0
  46. package/scripts/package-oris-skills.mjs +53 -0
  47. package/scripts/tests/run-all-tests.mjs +38 -0
  48. package/scripts/tests/test-agent-adapters.mjs +19 -0
  49. package/scripts/tests/test-oris-1-0-cleanliness.mjs +58 -0
  50. package/scripts/tests/test-oris-flow-clean-runtime.mjs +75 -0
  51. package/scripts/tests/test-oris-flow-scan.mjs +49 -0
  52. package/scripts/tests/test-oris-gitignore.mjs +35 -0
  53. package/scripts/tests/test-oris-loop-bootstrap.mjs +94 -0
  54. package/scripts/tests/test-oris-loop-document.mjs +112 -0
  55. package/scripts/tests/test-oris-loop-list.mjs +74 -0
  56. package/scripts/tests/test-oris-loop-run.mjs +45 -0
  57. package/scripts/tests/test-oris-loop-smoke.mjs +130 -0
  58. package/scripts/tests/test-oris-loop-stop.mjs +371 -0
  59. package/scripts/tests/test-routing-lifecycle.mjs +181 -0
  60. package/scripts/tests/test-schemas.mjs +55 -0
  61. package/skills/oris-flow/SKILL.md +55 -0
  62. package/skills/oris-flow/agents/openai.yaml +4 -0
  63. package/skills/oris-flow-criteria/SKILL.md +49 -0
  64. package/skills/oris-flow-discover/SKILL.md +58 -0
  65. package/skills/oris-flow-docs/SKILL.md +31 -0
  66. package/skills/oris-flow-fix/SKILL.md +42 -0
  67. package/skills/oris-flow-implement/SKILL.md +43 -0
  68. package/skills/oris-flow-plan/SKILL.md +51 -0
  69. package/skills/oris-flow-setup/SKILL.md +49 -0
  70. package/skills/oris-help/SKILL.md +30 -0
  71. package/skills/oris-help/agents/openai.yaml +4 -0
  72. package/skills/oris-loop/SKILL.md +66 -0
  73. package/skills/oris-loop/agents/openai.yaml +4 -0
  74. package/skills/oris-loop/references/craft.md +48 -0
  75. package/skills/oris-loop/references/improve.md +23 -0
  76. package/skills/oris-loop/references/run.md +30 -0
  77. package/skills/oris-loop/templates/debriefer.md +18 -0
  78. package/skills/oris-loop/templates/doctor.md +20 -0
  79. package/skills/oris-loop/templates/executor.md +19 -0
  80. package/skills/oris-loop/templates/orchestrator.md +33 -0
  81. package/skills/oris-loop/templates/verifier.md +21 -0
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "oris-skills",
3
+ "description": "Oris Skills: one entry point (/oris-flow), guided discovery-to-implementation flow, and self-tuning verified loops. Cross-model: Cursor, Claude Code, Codex.",
4
+ "version": "2.0.0",
5
+ "author": {
6
+ "name": "Davide Baldassarre"
7
+ },
8
+ "license": "MIT",
9
+ "keywords": [
10
+ "oris",
11
+ "skills",
12
+ "workflow",
13
+ "flow",
14
+ "loop",
15
+ "cursor",
16
+ "claude",
17
+ "codex"
18
+ ],
19
+ "skills": [
20
+ "./skills/oris-flow",
21
+ "./skills/oris-flow-setup",
22
+ "./skills/oris-flow-discover",
23
+ "./skills/oris-flow-criteria",
24
+ "./skills/oris-flow-plan",
25
+ "./skills/oris-flow-implement",
26
+ "./skills/oris-flow-fix",
27
+ "./skills/oris-flow-docs",
28
+ "./skills/oris-loop",
29
+ "./skills/oris-help"
30
+ ]
31
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Davide Baldassarre
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,67 @@
1
+ # Oris Skills
2
+
3
+ One entry point, a guided software flow, and self-tuning verified loops — for **Cursor**, **Claude Code**, and **Codex**.
4
+
5
+ ```bash
6
+ npx oris-skills@latest install
7
+ ```
8
+
9
+ The installer detects your agents (`~/.cursor`, `~/.claude`, `~/.codex`) or takes `--agents cursor,claude,codex`. Reload your agent, then type **`/oris-flow`** — the only command you need to remember.
10
+
11
+ ## What you get
12
+
13
+ **`/oris-flow`** routes any software-flow request to the right skill in the same chat:
14
+
15
+ | Route | Purpose |
16
+ |-------|---------|
17
+ | setup | map the repository into `.oris-flow/` so agents stop re-scanning |
18
+ | discover | business-first interview → `functional-analysis.md` |
19
+ | criteria | verifiable acceptance criteria → `acceptance-criteria.md` |
20
+ | plan | technical interview → `implementation-plan.md` |
21
+ | implement / fix | execute the plan, or the smallest safe bug fix |
22
+ | loop | repeat work until verified, with subagents and receipts |
23
+ | docs / help | keep task docs aligned; explain Oris |
24
+
25
+ **Oris loops** run the cycle *observe → one bounded action → independent verify → record → repeat/stop* with four roles (executor, verifier, doctor, debriefer), each driven by **an editable prompt file**:
26
+
27
+ ```text
28
+ .oris-flow/loops/{slug}/
29
+ loop.md contract: goal, scope, limits, per-role models, improve mode
30
+ prompts/ orchestrator.md executor.md verifier.md doctor.md debriefer.md ← edit freely
31
+ context.md receipts/ proposals/ history/
32
+ ```
33
+
34
+ - **Per-role models** — `models:` in `loop.md`: `inherit` (session model), an adapter alias, or a platform model id.
35
+ - **Self-tuning** — `improve.mode: auto` lets the debriefer rewrite the prompt files between passes (old versions archived in `history/`); scope and limits always require your approval.
36
+ - **Cross-platform triggers** — Cursor stop hook, Claude Code Stop hook (same chat continues automatically), or `oris-skills loop run --agent codex|claude` for headless/CI where each role is a separate CLI process.
37
+
38
+ ## Try a loop in 3 minutes
39
+
40
+ ```bash
41
+ oris-skills loop demo # creates a sandboxed tutorial loop
42
+ oris-skills loop dry-run --loop oris-demo # preview the exact pass message — runs nothing
43
+ oris-skills loop chat --action start --loop oris-demo # then end the chat turn; the hook does the rest
44
+ ```
45
+
46
+ Stop anytime: `oris-skills loop chat --action stop`. Self-check the runtime: `oris-skills loop verify --temp`.
47
+
48
+ ## Repository layout
49
+
50
+ | Path | Purpose |
51
+ |------|---------|
52
+ | `skills/` | the 10 Oris skills (`SKILL.md` each) |
53
+ | `skills/oris-loop/templates/` | role prompt templates copied into new loops |
54
+ | `references/` | shared contracts and JSON schemas |
55
+ | `agents/` | canonical subagent definitions (Cursor/Claude/Codex adapters generated) |
56
+ | `scripts/` | Node CLI, loop runtime, installer, tests |
57
+ | `docs/` | architecture, user guide, maintainer guide |
58
+
59
+ ## Maintainers
60
+
61
+ ```bash
62
+ npm test # cross-platform Node test suite
63
+ npm run validate
64
+ npm run verify:loop # end-to-end stop-hook simulation (cursor + claude)
65
+ ```
66
+
67
+ Node.js 20+. License: MIT.
@@ -0,0 +1,29 @@
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
+ 6. Keep the summary compact.
17
+
18
+ Output:
19
+
20
+ ```json
21
+ {
22
+ "role": "debriefer",
23
+ "outcome": "keep|tuned|proposed|execution-issue|environment-blocked|inconclusive",
24
+ "insight": "",
25
+ "changedFiles": [],
26
+ "proposalPath": "",
27
+ "nextAction": ""
28
+ }
29
+ ```
@@ -0,0 +1,32 @@
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|complete|block|ask-user|propose-patch",
26
+ "diagnosis": "",
27
+ "evidence": "",
28
+ "patchSummary": "",
29
+ "approvalRequired": true,
30
+ "nextAction": ""
31
+ }
32
+ ```
@@ -0,0 +1,32 @@
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.
14
+ 4. Preserve unrelated user work.
15
+ 5. Do not commit, push, deploy, write DevOps, send external messages, expose
16
+ credentials, or edit `.oris-flow/runtime/**`.
17
+ 6. Return a compact result with changed files, claim, risk, and suggested
18
+ verifier check.
19
+
20
+ Output:
21
+
22
+ ```json
23
+ {
24
+ "role": "executor",
25
+ "state": "claimed|blocked",
26
+ "summary": "",
27
+ "changedFiles": [],
28
+ "claim": "",
29
+ "evidenceHint": "",
30
+ "blocker": ""
31
+ }
32
+ ```
@@ -0,0 +1,31 @@
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.
12
+ 2. Use the verification command, static check, browser evidence, or review rule
13
+ declared by the loop.
14
+ 3. Do not edit product files.
15
+ 4. Keep raw logs out of the orchestrator response; point to evidence files when
16
+ available.
17
+ 5. Report pass, fail, blocked, or inconclusive.
18
+
19
+ Output:
20
+
21
+ ```json
22
+ {
23
+ "role": "verifier",
24
+ "state": "pass|fail|blocked|inconclusive",
25
+ "summary": "",
26
+ "evidence": "",
27
+ "evidencePath": "",
28
+ "failureSignal": "",
29
+ "nextRecommendation": ""
30
+ }
31
+ ```
@@ -0,0 +1,26 @@
1
+ # Oris Skills Architecture
2
+
3
+ Read this before explaining or changing the project.
4
+
5
+ ## Shape
6
+
7
+ ```text
8
+ skills/ 10 skills; oris-flow is the router, oris-loop the loop system
9
+ references/ shared contracts (conventions, loop-contract, settings, questions, repo-map, doc-policy) + schemas
10
+ agents/ canonical subagent definitions; adapters generated per platform
11
+ scripts/ Node CLI (oris-skills.mjs), loop runtime, installer, tests
12
+ docs/ this file, user-guide, maintainer-guide, distribution
13
+ ```
14
+
15
+ ## Principles
16
+
17
+ - ONE source of truth per fact: contracts live in `references/`, skills point at them.
18
+ - Skills use leading words (READ / ASK / NEVER / IF) and stay short; shared rules live in `references/conventions.md`.
19
+ - Everything repeatable lives in the target project under `.oris-flow/`; the bundle at `~/.oris/oris-skills/` owns scripts and templates.
20
+ - Loop prompts are per-loop editable files (`prompts/*.md`), never hardcoded in scripts.
21
+
22
+ ## Runtime
23
+
24
+ - `/oris-flow` routes; destination skills own their gates.
25
+ - Loop triggers: Cursor stop hook + Claude Stop hook (shared `scripts/loop/oris-loop-stop.mjs`, `--platform` switch), headless `loop run` for Codex/CI.
26
+ - State machine: `.oris-flow/runtime/chat-active.json`, managed only by `oris-skills loop chat`.
@@ -0,0 +1,38 @@
1
+ # Oris Skills Distribution
2
+
3
+ ## Channel
4
+
5
+ Public npm package `oris-skills` (MIT). Users install with:
6
+
7
+ ```bash
8
+ npx oris-skills@latest install
9
+ ```
10
+
11
+ The installer detects Cursor / Claude Code / Codex from `~/.cursor`, `~/.claude`, `~/.codex`, or takes `--agents`. Node.js 20+.
12
+
13
+ ## Installed assets
14
+
15
+ ```text
16
+ ~/.oris/oris-skills/ bundle: scripts, skills, references, agents, docs
17
+ ~/.oris/settings.json user settings (created only if missing)
18
+ ~/.cursor/skills/<name>/ Cursor skills (marker-managed)
19
+ ~/.claude/skills/<name>/ Claude Code skills (marker-managed)
20
+ ~/.codex/prompts/<name>.md Codex prompts pointing to the bundled SKILL.md
21
+ ```
22
+
23
+ Project assets live only in each repository's `.oris-flow/` (adapter, loops, runtime) plus thin hook wrappers in `.cursor/hooks/` and `.claude/hooks/` written by `oris-skills loop bootstrap`.
24
+
25
+ ## Uninstall / reinstall
26
+
27
+ ```bash
28
+ npx oris-skills uninstall --dry-run # preview
29
+ npx oris-skills uninstall # removes Oris-owned paths incl. legacy ~/.cursor locations
30
+ npx oris-skills reinstall
31
+ ```
32
+
33
+ ## Publish
34
+
35
+ 1. Versions aligned in `package.json` + `.cursor-plugin/plugin.json`; CHANGELOG updated.
36
+ 2. `npm test` green on CI (Windows/Linux/macOS).
37
+ 3. `npm publish` (publishConfig.access = public).
38
+ 4. Tag the release.
@@ -0,0 +1,32 @@
1
+ # Oris Skills Maintainer Guide
2
+
3
+ Use when improving Oris Skills itself. Keep changes tiny; update the canonical file instead of duplicating an explanation.
4
+
5
+ ## Ownership
6
+
7
+ | Change | Canonical place |
8
+ |--------|-----------------|
9
+ | User-facing explanation | `docs/user-guide.md`, `skills/oris-help/SKILL.md` |
10
+ | Project structure | `docs/architecture.md` |
11
+ | Routing | `skills/oris-flow/SKILL.md` (route table) |
12
+ | Shared interaction rules | `references/conventions.md`, `references/questions.md` |
13
+ | Loop behavior | `references/loop-contract.md`, `skills/oris-loop/` |
14
+ | Loop prompt templates | `skills/oris-loop/templates/` |
15
+ | Loop runtime | `scripts/loop/` |
16
+ | Install lifecycle | `scripts/oris-skills.mjs`, `scripts/install/` |
17
+ | Tests | `scripts/tests/` |
18
+
19
+ ## Validate
20
+
21
+ ```bash
22
+ npm test
23
+ npm run validate
24
+ npm run verify:loop
25
+ ```
26
+
27
+ ## Release
28
+
29
+ 1. Bump `package.json` + `.cursor-plugin/plugin.json` versions together.
30
+ 2. Update `CHANGELOG.md`.
31
+ 3. `npm test` green on CI (Windows/Linux/macOS).
32
+ 4. `npm publish` (public, MIT).
@@ -0,0 +1,42 @@
1
+ # Oris Skills User Guide
2
+
3
+ Install once, remember one command:
4
+
5
+ ```bash
6
+ npx oris-skills@latest install # detects Cursor / Claude Code / Codex
7
+ ```
8
+
9
+ Then type **`/oris-flow`** in your agent chat. It routes your request or shows a short menu (setup, discovery, criteria, plan, implement/fix, loop, docs, help). On Codex use the installed `/oris-flow` prompt.
10
+
11
+ ## Loops in short
12
+
13
+ A loop repeats: one bounded action → independent verification → receipt → continue or stop.
14
+
15
+ Learn it safely:
16
+
17
+ ```bash
18
+ oris-skills loop demo # sandboxed tutorial loop
19
+ oris-skills loop dry-run --loop oris-demo # preview, nothing runs
20
+ oris-skills loop chat --action start --loop oris-demo # arm, then end the chat turn
21
+ ```
22
+
23
+ Control it:
24
+
25
+ ```bash
26
+ oris-skills loop list # what exists
27
+ oris-skills loop chat --action status
28
+ oris-skills loop chat --action stop
29
+ ```
30
+
31
+ Tune it: edit the files in `.oris-flow/loops/{slug}/prompts/` — the next pass obeys them. With `improve.mode: auto` in `loop.md`, the loop tunes those prompts itself and archives old versions in `history/`.
32
+
33
+ ## Install lifecycle
34
+
35
+ ```bash
36
+ npx oris-skills install [--agents cursor,claude,codex] [--force]
37
+ npx oris-skills uninstall [--dry-run]
38
+ npx oris-skills reinstall
39
+ ```
40
+
41
+ Uninstall removes only Oris-owned paths (including legacy locations); preview with `--dry-run`.
42
+ Settings (language, test profiles): `~/.oris/settings.json`, edited via `/oris-flow` → Setup.
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "oris-skills",
3
+ "version": "2.0.0",
4
+ "description": "Oris Skills: one entry point (/oris-flow), guided discovery-to-implementation flow, and self-tuning verified loops for Cursor, Claude Code, and Codex.",
5
+ "license": "MIT",
6
+ "author": "Davide Baldassarre",
7
+ "type": "module",
8
+ "bin": {
9
+ "oris-skills": "scripts/oris-skills.mjs"
10
+ },
11
+ "files": [
12
+ "scripts",
13
+ "skills",
14
+ "references",
15
+ "agents",
16
+ "docs",
17
+ ".cursor-plugin",
18
+ "README.md",
19
+ "LICENSE"
20
+ ],
21
+ "keywords": [
22
+ "oris",
23
+ "skills",
24
+ "agent",
25
+ "workflow",
26
+ "loop",
27
+ "cursor",
28
+ "claude",
29
+ "codex"
30
+ ],
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/davidebaldassarre/OrisSkills.git"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "scripts": {
39
+ "test": "node scripts/tests/run-all-tests.mjs",
40
+ "test:node": "node scripts/tests/run-all-tests.mjs --node-only",
41
+ "validate": "node scripts/oris-skills.mjs validate",
42
+ "scan": "node scripts/flow/oris-flow-scan.mjs --json",
43
+ "install:dry-run": "node scripts/install/install-user-skills.mjs --dry-run",
44
+ "verify:loop": "node scripts/loop/oris-loop-verify.mjs --temp"
45
+ },
46
+ "engines": {
47
+ "node": ">=20"
48
+ }
49
+ }
@@ -0,0 +1,107 @@
1
+ # Clean Code Checklist
2
+
3
+ Use this reference during `/oris-flow-clean-code` audits. Investigate before concluding; absence in one file is not proof of dead code.
4
+
5
+ ## Analysis Order
6
+
7
+ 1. Resolve scope from task folder, recent diff, or user-provided section.
8
+ 2. Read project conventions: README, `docs/**`, `.cursor/rules/**`, `.cursor/skills/**`, linter config, and formatting rules.
9
+ 3. List scoped files and their relationships: imports, tests, config, translations, DI registration, routing, and feature flags.
10
+ 4. Audit category by category below.
11
+ 5. Record only findings with file, line, severity, problem, and proposed fix.
12
+
13
+ ## In Scope
14
+
15
+ ### Dead and unused code
16
+
17
+ - Unused imports, variables, parameters, private methods, classes, constants, and files
18
+ - Unreachable branches left from earlier attempts
19
+ - Commented-out code blocks that are not active documentation
20
+ - Feature flags or toggles that no longer gate anything
21
+ - Orphan tests for removed behavior
22
+
23
+ Verify with cross-file search, DI/container registration, reflection, dynamic imports, string-based dispatch, routing tables, Razor/tag helpers, code generation, and framework conventions before marking dead.
24
+
25
+ ### Duplication
26
+
27
+ - Copy-pasted logic with only naming changes
28
+ - Parallel helpers that should be one function
29
+ - Repeated validation, mapping, or query patterns in the same feature area
30
+
31
+ Prefer the existing project abstraction level. Do not introduce new shared layers for one-off duplication unless the user approves.
32
+
33
+ ### Abandoned attempts
34
+
35
+ - Half-finished branches with TODO/FIXME/HACK tied to the current feature
36
+ - Alternate implementations left in place after a chosen approach
37
+ - Debug logging, temporary guards, or experimental code paths no longer needed
38
+ - Stale comments describing behavior that no longer exists
39
+
40
+ ### Typos and wording
41
+
42
+ - Misspellings in user-visible strings when the task scope includes them
43
+ - Wrong identifiers that reduce readability but are not public API contracts
44
+ - Misleading names for variables or methods introduced in the current work
45
+
46
+ Do not rename public API surface, routes, database fields, or serialized property names unless the user explicitly approves.
47
+
48
+ ### Obvious inefficiencies
49
+
50
+ - Duplicate queries or remote calls inside loops
51
+ - Repeated allocations or parsing in hot paths within the scoped change
52
+ - Redundant null checks, casts, or conversions introduced during iteration
53
+
54
+ Flag only clear wins with low regression risk. Do not micro-optimize unrelated code.
55
+
56
+ ### Style and format
57
+
58
+ Apply only when conventions are explicit in project docs or `.cursor/rules`:
59
+
60
+ - Naming patterns
61
+ - Import/order rules
62
+ - Formatter or analyzer expectations
63
+ - File layout conventions
64
+
65
+ Avoid formatting-only churn outside the scoped files.
66
+
67
+ ## Out of Scope
68
+
69
+ - Bug fixes or behavior corrections - use `/oris-flow-fix`
70
+ - Architectural deepening, module consolidation, or seam redesign
71
+ - Large refactors, API redesign, or cross-feature rewrites
72
+ - DevOps, commits, branches, pull requests, or documentation updates
73
+ - Rewriting tests to change behavior instead of removing obsolete coverage
74
+
75
+ ## Evidence Bar
76
+
77
+ Before reporting a finding:
78
+
79
+ - Search references and call sites in the scoped area and direct dependents
80
+ - Check whether tests, config, or registration files still require the symbol
81
+ - For dead code candidates, note what search was performed
82
+ - For duplication, cite both locations and why consolidation is safe
83
+ - For abandoned attempts, tie the finding to the current feature or recent diff when possible
84
+
85
+ ## Report Shape
86
+
87
+ Keep chat output compact:
88
+
89
+ ```text
90
+ Blue src/Feature/Foo.cs:42 - unused import `System.Linq`
91
+ Yellow src/Feature/Bar.cs:18-31 - duplicated validation with Baz.cs:44-57 - extract local helper
92
+ Red src/Feature/Qux.cs:90 - private method appears unused but referenced via reflection in Registry.cs
93
+ ```
94
+
95
+ ## Post-Fix Recap Shape
96
+
97
+ After approved fixes, show a short bulleted recap in settings `uiLanguage`:
98
+
99
+ ```text
100
+ - Removed unused imports in Foo.cs and Bar.cs - no references remained after cross-file search.
101
+ - Deleted commented fallback block in Qux.cs - superseded by current handler.
102
+ - Aligned member order in Baz.cs to project rule X.
103
+ ```
104
+
105
+ ## Last updated
106
+
107
+ 2026-06-23
@@ -0,0 +1,39 @@
1
+ # Oris Conventions
2
+
3
+ Shared rules for every Oris skill. Skills reference this file instead of repeating it.
4
+
5
+ ## Paths
6
+
7
+ `references/…`, `skills/…`, `agents/…` = Oris bundle root.
8
+ - Installed: `~/.oris/oris-skills/`
9
+ - Repo checkout: repository root.
10
+
11
+ ## Questions
12
+
13
+ - ASK with the platform question UI (Cursor `AskQuestion`, Claude `AskUserQuestion`); ELSE ask plainly in chat.
14
+ - ONE question per turn. Recommended answer FIRST.
15
+ - ALWAYS include, localized to `uiLanguage`:
16
+ - `Explain the options` / `Spiega le opzioni` — explain, then re-ask.
17
+ - During interviews: `Enough questions — proceed` / `Basta domande — procedi` (early exit).
18
+ - NEVER ask what the workspace, docs, code, or setup map already answer. Explore first.
19
+
20
+ ## Language
21
+
22
+ - READ `references/settings.md` (user settings: `~/.oris/settings.json`).
23
+ - Chat + questions: `uiLanguage`. Generated documents: `artifactLanguage`. Default both: `en`.
24
+
25
+ ## Setup map
26
+
27
+ - WHEN `.oris-flow/manifest.json` exists: read it + only the relevant `.oris-flow/maps/**` sections BEFORE scanning broadly.
28
+ - VERIFY stale or high-risk map facts against the repository before consequential actions.
29
+
30
+ ## Gates
31
+
32
+ - NEVER write documents, code, settings, Git, or DevOps without explicit user confirmation in this flow.
33
+ - The skill that performs the action owns its confirmation gate; routing never grants it.
34
+ - NEVER store secrets in `.oris-flow/**`, docs, receipts, or logs. Mask passwords as `***`.
35
+
36
+ ## Subagents
37
+
38
+ - USE parallel subagents for independent scans when the platform has them (Cursor subagents, Claude Task tool).
39
+ - KEEP subagent output compact: summaries and pointers, not raw logs.
@@ -0,0 +1,24 @@
1
+ # Oris Documentation Policy
2
+
3
+ Applies whenever an Oris skill writes or updates task documentation. Project-agnostic.
4
+
5
+ ## Task folder
6
+
7
+ One folder per feature, whole lifecycle:
8
+
9
+ | File | Purpose | Written by |
10
+ |------|---------|------------|
11
+ | `docs/tasks/{task}/functional-analysis.md` | confirmed business behavior | discover |
12
+ | `docs/tasks/{task}/acceptance-criteria.md` | QA criteria, stable `AC-xxx` IDs | criteria |
13
+ | `docs/tasks/{task}/implementation-plan.md` | execution-ready technical plan | plan |
14
+
15
+ NEVER split one feature's docs across unrelated directories.
16
+
17
+ ## Rules
18
+
19
+ 1. Language: documents in `artifactLanguage`; skill instructions stay English.
20
+ 2. Steps are independent: any document may be created without the previous one. State the missing source once, use the strongest confirmed source, record the gap in the document ("not available" localized). Never block on a missing predecessor.
21
+ 3. INSPECT the task folder + setup map before asking the user or writing.
22
+ 4. Every document ends with a change-history table: date | source | change | reason. Later changes rewrite the affected sections AND add a history row — no inline "changed!" notes.
23
+ 5. Facts only from confirmed sources; open questions go to open points. NEVER invent behavior, labels, or commands.
24
+ 6. Verification artifacts (test plans, specs) are technical follow-ups owned by loops or the project's own conventions — they never replace `acceptance-criteria.md`.