@azure-id/orc 1.9.1 → 2.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/CHANGELOG.md +390 -0
- package/README-id.md +20 -36
- package/README.md +24 -34
- package/bin/build-agents.js +206 -109
- package/bin/cli.js +760 -62
- package/bin/gotcha-import.js +1081 -0
- package/bin/gotcha.js +1286 -0
- package/bin/graph-query.js +1 -1
- package/bin/graph.js +717 -717
- package/bin/habit.js +1453 -0
- package/bin/mockrun-catalog.js +281 -276
- package/bin/onboarding-content.js +4 -4
- package/bin/pricing.json +207 -200
- package/bin/run-undo.js +398 -0
- package/bin/trace-write.js +657 -0
- package/bin/verify-contracts.js +527 -81
- package/bin/verify-package.js +58 -11
- package/bin/webui/api.js +26 -0
- package/bin/webui/app.html +239 -232
- package/bin/webui/css/00-tokens.css +110 -92
- package/bin/webui/css/04-motion.css +249 -152
- package/bin/webui/css/06-responsive.css +203 -178
- package/bin/webui/css/panels/behaviour.css +205 -0
- package/bin/webui/css/panels/knowledge.css +563 -116
- package/bin/webui/fixtures/behaviour.js +532 -0
- package/bin/webui/fixtures/extra.js +2036 -2036
- package/bin/webui/fixtures/hookui.js +5 -5
- package/bin/webui/fixtures/index.js +34 -0
- package/bin/webui/fixtures/knowledge.js +7 -1
- package/bin/webui/fixtures/settings.js +305 -305
- package/bin/webui/fixtures/stats.js +16 -0
- package/bin/webui/i18n/en/behaviour.json +143 -0
- package/bin/webui/i18n/en/knowledge.json +117 -2
- package/bin/webui/i18n/en/nav.json +25 -24
- package/bin/webui/i18n/en/tour.json +37 -35
- package/bin/webui/i18n/id/behaviour.json +143 -0
- package/bin/webui/i18n/id/knowledge.json +117 -2
- package/bin/webui/i18n/id/nav.json +25 -24
- package/bin/webui/i18n/id/tour.json +37 -35
- package/bin/webui/js/01-i18n.js +155 -154
- package/bin/webui/js/90-tour.js +498 -494
- package/bin/webui/js/91-shortcuts.js +126 -126
- package/bin/webui/js/99-boot.js +121 -118
- package/bin/webui/js/panels/behaviour.js +1022 -0
- package/bin/webui/js/panels/knowledge.js +552 -7
- package/bin/webui/js/panels/overview.js +13 -4
- package/mock-run/INDEX.md +109 -107
- package/mock-run/context-combiner.md +100 -100
- package/mock-run/gotcha-import.md +118 -0
- package/mock-run/habits.md +129 -0
- package/mock-run/orc-budget.md +534 -534
- package/mock-run/orc-challenge-council.md +262 -262
- package/mock-run/orc-quick.md +6 -1
- package/mock-run/orc-ultra.md +103 -103
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +49 -49
- package/templates/agents/orc-advisor-opus-5-xhigh.md +50 -56
- package/templates/agents/orc-analyze-mini-opus-5-med.md +55 -60
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +55 -58
- package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -75
- package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -110
- package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -114
- package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -112
- package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -132
- package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -109
- package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -109
- package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -90
- package/templates/agents/orc-claude-writer-opus-4-8-high.md +48 -53
- package/templates/agents/orc-claude-writer-opus-5-med.md +48 -55
- package/templates/agents/orc-context-combiner-opus-5-high.md +78 -88
- package/templates/agents/orc-doc-checker-opus-5-low.md +108 -108
- package/templates/agents/orc-doc-writer-opus-5-med.md +134 -134
- package/templates/agents/orc-executor-haiku-4-5.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-high.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-med.md +14 -6
- package/templates/agents/orc-executor-opus-4-8-high.md +14 -6
- package/templates/agents/orc-executor-opus-5-high.md +15 -7
- package/templates/agents/orc-executor-opus-5-low.md +15 -7
- package/templates/agents/orc-executor-opus-5-med.md +15 -7
- package/templates/agents/orc-executor-sonnet-4-6-high.md +14 -6
- package/templates/agents/orc-executor-sonnet-4-6-med.md +14 -6
- package/templates/agents/orc-executor-sonnet-5-high.md +14 -6
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -10
- package/templates/agents/orc-judge-opus-5-xhigh.md +81 -85
- package/templates/agents/orc-learn-writer-opus-5-low.md +67 -73
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +58 -65
- package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +58 -63
- package/templates/agents/orc-planner-mini-opus-5-med.md +4 -7
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +2 -3
- package/templates/agents/orc-planner-opus-5-med.md +157 -160
- package/templates/agents/orc-recon-opus-5-low.md +3 -10
- package/templates/agents/orc-recon-sonnet-4-6-med.md +1 -8
- package/templates/agents/orc-retro-opus-5-med.md +8 -10
- package/templates/agents/orc-retro-sonnet-5-high.md +6 -7
- package/templates/agents/orc-reviewer-opus-5-med.md +96 -60
- package/templates/agents/orc-scout-opus-5-low.md +35 -40
- package/templates/agents/orc-scout-sonnet-4-6-high.md +35 -39
- package/templates/agents/orc-system-analyst-opus-5-high.md +115 -120
- package/templates/agents/orc-test-author-opus-5-med.md +70 -71
- package/templates/agents/orc-test-designer-opus-5-high.md +158 -158
- package/templates/agents/orc-test-interpreter-opus-5-low.md +130 -130
- package/templates/agents/orc-trace-writer-haiku-4-5.md +3 -7
- package/templates/agents/orc-verifier-opus-5-med.md +77 -69
- package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +74 -79
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +74 -81
- package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +97 -106
- package/templates/commands/orc-analyze.md +13 -21
- package/templates/commands/orc-fast.md +10 -15
- package/templates/commands/orc-poly.md +12 -21
- package/templates/commands/orc-pr-driver.md +11 -30
- package/templates/commands/orc-pr-setup.md +10 -31
- package/templates/commands/orc-route.md +11 -41
- package/templates/commands/orc-test.md +5 -60
- package/templates/commands/orc-ultra.md +17 -17
- package/templates/commands/orc-verify.md +11 -11
- package/templates/hooks/README.md +36 -2
- package/templates/hooks/orc-effort-guard.js +178 -178
- package/templates/hooks/orc-session-hook.js +264 -0
- package/templates/hooks/orc-statusline.js +9 -7
- package/templates/skills/_shared/README.md +9 -0
- package/templates/skills/_shared/code-graph.md +48 -56
- package/templates/skills/_shared/config-precedence.md +200 -198
- package/templates/skills/_shared/extra-dispatch.md +1331 -1346
- package/templates/skills/_shared/gotchas.md +228 -177
- package/templates/skills/_shared/habits.md +101 -0
- package/templates/skills/_shared/lane-contract.md +84 -0
- package/templates/skills/_shared/opus5-only.md +8 -8
- package/templates/skills/_shared/phases/README.md +142 -83
- package/templates/skills/_shared/phases/analyst-gates.md +125 -136
- package/templates/skills/_shared/phases/execution.md +8 -14
- package/templates/skills/_shared/phases/house-rules.md +27 -32
- package/templates/skills/_shared/phases/intake.md +127 -133
- package/templates/skills/_shared/phases/mock-example.md +46 -56
- package/templates/skills/_shared/phases/plan-handoff.md +91 -97
- package/templates/skills/_shared/phases/planning.md +7 -17
- package/templates/skills/_shared/phases/preflight.md +19 -42
- package/templates/skills/_shared/phases/review.md +23 -27
- package/templates/skills/_shared/phases/rules.md +18 -42
- package/templates/skills/_shared/phases/scoring.md +55 -65
- package/templates/skills/_shared/phases/security-checklist.md +46 -50
- package/templates/skills/_shared/phases/security.md +45 -55
- package/templates/skills/_shared/phases/ship.md +6 -15
- package/templates/skills/_shared/phases/stop-resume.md +2 -5
- package/templates/skills/_shared/phases/summary.md +73 -48
- package/templates/skills/_shared/phases/testgen.md +41 -51
- package/templates/skills/_shared/phases/trace-verbs.md +433 -0
- package/templates/skills/_shared/phases/trace.md +136 -367
- package/templates/skills/_shared/phases/verify.md +62 -70
- package/templates/skills/_shared/phases/wave-grouping.md +128 -133
- package/templates/skills/_shared/phases/wiki-consult.md +10 -6
- package/templates/skills/_shared/read-ladder.md +2 -55
- package/templates/skills/_shared/return-validation.md +17 -70
- package/templates/skills/_shared/review-slice.md +79 -0
- package/templates/skills/_shared/smoke-gate.md +46 -28
- package/templates/skills/context-combiner/SKILL.md +16 -45
- package/templates/skills/context-combiner/schemas/combined-report.md +78 -78
- package/templates/skills/orc/README.md +2 -2
- package/templates/skills/orc/SKILL.md +41 -69
- package/templates/skills/orc/config.md +9 -9
- package/templates/skills/orc/examples/full-run-mock.md +73 -73
- package/templates/skills/orc/references/effort-and-mode.md +222 -222
- package/templates/skills/orc/references/pattern-gate.md +89 -89
- package/templates/skills/orc/references/phases/intake.md +41 -47
- package/templates/skills/orc/references/phases/integration.md +13 -19
- package/templates/skills/orc/references/preflight-report.md +10 -11
- package/templates/skills/orc/references/ultra-mode.md +11 -9
- package/templates/skills/orc/subskills/orc-execution/SKILL.md +27 -73
- package/templates/skills/orc/subskills/orc-execution/core.md +12 -99
- package/templates/skills/orc/subskills/orc-execution/subagent.md +14 -13
- package/templates/skills/orc/subskills/orc-planner/SKILL.md +2 -2
- package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -121
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +35 -76
- package/templates/skills/orc/subskills/orc-review-verify/core.md +52 -135
- package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -7
- package/templates/skills/orc/subskills/orc-testgen/SKILL.md +34 -45
- package/templates/skills/orc/subskills/orc-testgen/core.md +20 -59
- package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -7
- package/templates/skills/orc-advisor/SKILL.md +56 -60
- package/templates/skills/orc-analyze/SKILL.md +32 -68
- package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -42
- package/templates/skills/orc-analyze/schemas/report-audit.md +84 -83
- package/templates/skills/orc-analyze/schemas/report-prose.md +64 -63
- package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -78
- package/templates/skills/orc-analyze-mini/SKILL.md +35 -70
- package/templates/skills/orc-challenge/README.md +142 -142
- package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -273
- package/templates/skills/orc-challenge/references/council.md +315 -315
- package/templates/skills/orc-challenge/references/intake.md +171 -171
- package/templates/skills/orc-claude/SKILL.md +14 -14
- package/templates/skills/orc-diy/README.md +174 -143
- package/templates/skills/orc-diy/SKILL.md +23 -74
- package/templates/skills/orc-diy/references/blocks/pattern.md +18 -18
- package/templates/skills/orc-diy/references/flow-schema.md +1 -1
- package/templates/skills/orc-doc/README.md +229 -229
- package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -325
- package/templates/skills/orc-doc/references/chunking.md +527 -527
- package/templates/skills/orc-fast/SKILL.md +45 -73
- package/templates/skills/orc-judge/SKILL.md +77 -82
- package/templates/skills/orc-learn/SKILL.md +14 -14
- package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -61
- package/templates/skills/orc-mini/SKILL.md +65 -113
- package/templates/skills/orc-pattern/SKILL.md +27 -48
- package/templates/skills/orc-poly/SKILL.md +32 -61
- package/templates/skills/orc-pr-driver/SKILL.md +25 -51
- package/templates/skills/orc-pr-driver/references/green-gate.md +113 -105
- package/templates/skills/orc-pr-setup/SKILL.md +20 -45
- package/templates/skills/orc-quick/README.md +43 -2
- package/templates/skills/orc-quick/SKILL.md +76 -107
- package/templates/skills/orc-quick/references/dispatch-gate.md +16 -5
- package/templates/skills/orc-quick/references/gh-mode.md +48 -1
- package/templates/skills/orc-quick/references/look.md +3 -1
- package/templates/skills/orc-retro/SKILL.md +19 -18
- package/templates/skills/orc-retro/examples/retro-mock.md +1 -1
- package/templates/skills/orc-route/SKILL.md +25 -45
- package/templates/skills/orc-test/SKILL.md +16 -37
- package/templates/skills/orc-verify/SKILL.md +21 -39
- package/templates/skills/orc-verify/examples/verify-mock.md +33 -33
- package/templates/skills/orc-wait/SKILL.md +156 -163
- package/templates/skills/orc-wiki/references/extra.md +1 -1
- package/templates/skills/orc-wiki/references/phases/phase-0.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-1.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-2.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-3.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +1 -6
|
@@ -27,6 +27,22 @@ const stats = {
|
|
|
27
27
|
// v1.8.2 W4b — the code-graph row. `paid` is exact; the avoided pair is an
|
|
28
28
|
// ESTIMATE and always a RANGE, which is why the panel never shows one number.
|
|
29
29
|
graph: { calls: 41, runs: 6, paid: 4912, avoided_low: 18900, avoided_high: 71400, estimate: true },
|
|
30
|
+
// v2.0.0 W6b (Q7) — questions per run. `null` = could not be computed.
|
|
31
|
+
questions: {
|
|
32
|
+
runs: 61,
|
|
33
|
+
per_run_p50: 2,
|
|
34
|
+
per_run_trend: [
|
|
35
|
+
{ run: "run-quick-fix-guest-charge-060826-101500.txt", lane: "quick", date: "2026-08-06", asked: 3, answered_for_you: 1 },
|
|
36
|
+
{ run: "run-mini-add-export-070826-140000.txt", lane: "mini", date: "2026-08-07", asked: 0, answered_for_you: 2 },
|
|
37
|
+
],
|
|
38
|
+
asked: 131,
|
|
39
|
+
answered_for_you: 58,
|
|
40
|
+
subagent_questions: 12,
|
|
41
|
+
by: { user: 104, ledger: 31, learned: 15, config: 20, default: 7 },
|
|
42
|
+
by_lane: { quick: { runs: 17, asked: 44, answered_for_you: 30, per_run_p50: 2 }, mini: { runs: 9, asked: 11, answered_for_you: 6, per_run_p50: 1 } },
|
|
43
|
+
by_point: { "quick.q3.offer.review": { asked: 12, answered_for_you: 9, lanes: ["quick"] } },
|
|
44
|
+
rule: "asked = ASK by=user|learned + QUESTION count=<n>; answered for you = ASK by=ledger|config|default",
|
|
45
|
+
},
|
|
30
46
|
};
|
|
31
47
|
|
|
32
48
|
/* ============================================================ v0.46.0 ====== */
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"behaviour.title": "Behaviour",
|
|
3
|
+
"behaviour.sub": "What the lanes learned about how you work, from your own answers, in this project only. Nothing here leaves this machine.",
|
|
4
|
+
"behaviour.learning": "Learning",
|
|
5
|
+
"behaviour.window": "Window",
|
|
6
|
+
"behaviour.modeTitle": "Set behaviour learning to {mode}?",
|
|
7
|
+
"behaviour.modeDone": "Behaviour learning is now {mode}.",
|
|
8
|
+
"behaviour.mode.off": "Nothing is recorded and nothing is loaded. It costs zero tokens. Earlier answers are kept.",
|
|
9
|
+
"behaviour.mode.observe": "Your answers are recorded, so this page fills. The lanes behave as before: no suggestion, no proposal.",
|
|
10
|
+
"behaviour.mode.propose": "Your answers are recorded. An accepted habit marks your usual option, and a run shows one proposal at most. Nothing changes without your yes.",
|
|
11
|
+
"behaviour.off.eyebrow": "Behaviour learning is off",
|
|
12
|
+
"behaviour.off.title": "ORC does not learn from your answers now, and this costs nothing.",
|
|
13
|
+
"behaviour.off.kept": "{n} answers from an earlier period are kept.",
|
|
14
|
+
"behaviour.off.how": "Use the Learning switch above, or run one of these commands:",
|
|
15
|
+
"behaviour.portrait": "Your portrait · {window}",
|
|
16
|
+
"behaviour.noProposal": "No habit waits for your decision now.",
|
|
17
|
+
"behaviour.emptyTitle": "No answers yet",
|
|
18
|
+
"behaviour.emptyHint": "Run a lane. Each question it asks is recorded in its trace, and this page fills from those lines.",
|
|
19
|
+
"behaviour.tile.runs": "Runs observed",
|
|
20
|
+
"behaviour.tile.runsNote": "from {n} traces",
|
|
21
|
+
"behaviour.tile.answers": "Answers recorded",
|
|
22
|
+
"behaviour.tile.answersNote": "one per question you saw",
|
|
23
|
+
"behaviour.tile.saved": "Questions saved",
|
|
24
|
+
"behaviour.tile.savedNote": "answered for you by the ledger or config",
|
|
25
|
+
"behaviour.tile.qpr": "Questions per run",
|
|
26
|
+
"behaviour.tile.qprNote": "fewer questions, never fewer checks",
|
|
27
|
+
"behaviour.tile.prev": "before: {n}",
|
|
28
|
+
"behaviour.tabsLabel": "Behaviour views",
|
|
29
|
+
"behaviour.tab.habits": "Habits",
|
|
30
|
+
"behaviour.tab.rhythm": "Rhythm",
|
|
31
|
+
"behaviour.tab.gotchas": "Gotchas",
|
|
32
|
+
"behaviour.tab.quality": "Review quality",
|
|
33
|
+
"behaviour.tab.log": "Answer log",
|
|
34
|
+
"behaviour.nextRun": "Next run",
|
|
35
|
+
"behaviour.nextRunNote": "what your habits do on the next run of each lane",
|
|
36
|
+
"behaviour.legendTitle": "How a habit moves",
|
|
37
|
+
"behaviour.state.observed": "not enough answers yet, or the rule does not pass",
|
|
38
|
+
"behaviour.state.proposed": "the rule passed. The decision is yours",
|
|
39
|
+
"behaviour.state.applied": "in use, with an undo on the card",
|
|
40
|
+
"behaviour.state.declined": "you said not now. It can come back later",
|
|
41
|
+
"behaviour.state.neverAsk": "you said never. It is still recorded",
|
|
42
|
+
"behaviour.state.stale": "your answers changed, so the habit is paused",
|
|
43
|
+
"behaviour.state.shadowed": "your config file sets this key, so the file wins",
|
|
44
|
+
"behaviour.state.never": "ORC shows this and never proposes it",
|
|
45
|
+
"behaviour.class.apply": "answers a config key at the learned rank. Your own config always wins",
|
|
46
|
+
"behaviour.class.suggest": "puts your usual option first. The question is still asked",
|
|
47
|
+
"behaviour.class.never": "shown only. A person makes this choice every time",
|
|
48
|
+
"behaviour.by.user": "you chose it",
|
|
49
|
+
"behaviour.by.ledger": "you said it earlier, in the ledger",
|
|
50
|
+
"behaviour.by.learned": "a habit you accepted chose the recommendation",
|
|
51
|
+
"behaviour.by.config": "a config key answered it",
|
|
52
|
+
"behaviour.by.default": "the shipped default answered it",
|
|
53
|
+
"behaviour.field.rule": "rule",
|
|
54
|
+
"behaviour.field.context": "context",
|
|
55
|
+
"behaviour.anyContext": "any context",
|
|
56
|
+
"behaviour.streakLabel": "last {n} answers: {top} top choice, {pre} pre-selected",
|
|
57
|
+
"behaviour.ringLabel": "{pct}% chose the top option",
|
|
58
|
+
"behaviour.ringTop": "top",
|
|
59
|
+
"behaviour.act.accept": "Make it my usual",
|
|
60
|
+
"behaviour.act.acceptTitle": "Accept habit {id}?",
|
|
61
|
+
"behaviour.act.acceptWhat": "ORC uses this from the next run. Your config file still wins. You can undo it with Forget on the same card.",
|
|
62
|
+
"behaviour.act.decline": "Not now",
|
|
63
|
+
"behaviour.act.declineTitle": "Not now?",
|
|
64
|
+
"behaviour.act.declineWhat": "The proposal can come back after 10 more answers and 14 days.",
|
|
65
|
+
"behaviour.act.never": "Never ask",
|
|
66
|
+
"behaviour.act.neverTitle": "Never ask again?",
|
|
67
|
+
"behaviour.act.neverWhat": "ORC keeps recording your answers but does not propose this again. Ask me again brings it back.",
|
|
68
|
+
"behaviour.act.forget": "Forget",
|
|
69
|
+
"behaviour.act.forgetTitle": "Forget habit {id}?",
|
|
70
|
+
"behaviour.act.forgetWhat": "The habit stops at once. Your config file or the shipped default answers again. Past answers stop counting.",
|
|
71
|
+
"behaviour.act.reset": "Ask me again",
|
|
72
|
+
"behaviour.act.resetTitle": "Ask me again?",
|
|
73
|
+
"behaviour.act.resetWhat": "This clears your no. The answers are kept, and the proposal can appear again.",
|
|
74
|
+
"behaviour.act.manual": "This has no button on purpose. A person types this command:",
|
|
75
|
+
"behaviour.confirmNote": "This runs one local command. It is free and you can undo it:",
|
|
76
|
+
"behaviour.runIt": "Run it",
|
|
77
|
+
"behaviour.done": "{id}: ran {command}.",
|
|
78
|
+
"behaviour.undoWhere": "The undo is on the same card.",
|
|
79
|
+
"behaviour.history": "History",
|
|
80
|
+
"behaviour.historyNote": "Every change, newest first, with the command that undoes it.",
|
|
81
|
+
"behaviour.rhythm.when": "When you run ORC",
|
|
82
|
+
"behaviour.rhythm.whenNote": "runs by weekday and hour, local time",
|
|
83
|
+
"behaviour.rhythm.heatLabel": "{n} runs by weekday and hour",
|
|
84
|
+
"behaviour.rhythm.cell": "{day} {hour}:00 — {n} runs",
|
|
85
|
+
"behaviour.rhythm.lanes": "Which lane you use",
|
|
86
|
+
"behaviour.rhythm.runs": "1 run",
|
|
87
|
+
"behaviour.rhythm.runsPlural": "{n} runs",
|
|
88
|
+
"behaviour.rhythm.qpr": "Questions per run",
|
|
89
|
+
"behaviour.rhythm.qprLabel": "questions per run, {from} to {to} over {n} weeks",
|
|
90
|
+
"behaviour.rhythm.qprNote": "Each habit you accept and each ledger answer removes a question. The goal is fewer questions, never fewer checks.",
|
|
91
|
+
"behaviour.rhythm.how": "How each answer was given",
|
|
92
|
+
"behaviour.rhythm.howLabel": "answers per week for {n} weeks, by how each was given",
|
|
93
|
+
"behaviour.day.mon": "Mon",
|
|
94
|
+
"behaviour.day.tue": "Tue",
|
|
95
|
+
"behaviour.day.wed": "Wed",
|
|
96
|
+
"behaviour.day.thu": "Thu",
|
|
97
|
+
"behaviour.day.fri": "Fri",
|
|
98
|
+
"behaviour.day.sat": "Sat",
|
|
99
|
+
"behaviour.day.sun": "Sun",
|
|
100
|
+
"behaviour.target": "target {v}",
|
|
101
|
+
"behaviour.g.title": "Gotchas",
|
|
102
|
+
"behaviour.g.none": "No gotchas recorded yet",
|
|
103
|
+
"behaviour.g.noneHint": "A repair loop that goes red to green writes the first one.",
|
|
104
|
+
"behaviour.g.sources": "Where the gotchas come from",
|
|
105
|
+
"behaviour.g.alwaysOn": "review learning is always on",
|
|
106
|
+
"behaviour.g.lastSync": "last sync {at}",
|
|
107
|
+
"behaviour.g.noSync": "no sync has run yet",
|
|
108
|
+
"behaviour.g.statusNote": "A candidate is seen but not proven. It needs 3 cases in 2 or more PRs, or your yes. Quiet means no case in 90 days. Orphaned means its scope matches no file now. Only a person deletes a gotcha.",
|
|
109
|
+
"behaviour.g.list": "Gotchas",
|
|
110
|
+
"behaviour.g.listNote": "the CLI sends them in its own order",
|
|
111
|
+
"behaviour.g.spark": "{n} hits in the last {w} weeks",
|
|
112
|
+
"behaviour.g.preview": "What the reviewer will see",
|
|
113
|
+
"behaviour.g.previewFree": "a free read",
|
|
114
|
+
"behaviour.g.previewHint": "Type the changed paths, separated by commas. This shows the exact card the reviewer gets.",
|
|
115
|
+
"behaviour.g.previewLabel": "changed paths",
|
|
116
|
+
"behaviour.g.previewEmpty": "Type a path to see the card.",
|
|
117
|
+
"behaviour.g.noCard": "No gotcha matches these paths ({n} known). The reviewer gets no gotcha card.",
|
|
118
|
+
"behaviour.q.cats": "Accepted findings by kind",
|
|
119
|
+
"behaviour.q.reviews": "1 review",
|
|
120
|
+
"behaviour.q.reviewsPlural": "{n} reviews",
|
|
121
|
+
"behaviour.q.none": "No reviews in this window yet.",
|
|
122
|
+
"behaviour.q.trend": "Acceptance, last 12 reviews",
|
|
123
|
+
"behaviour.q.trendLabel": "acceptance over the last {n} reviews",
|
|
124
|
+
"behaviour.q.p3": "Advice-only findings per review (P3)",
|
|
125
|
+
"behaviour.q.p3Label": "advice-only findings over the last {n} reviews",
|
|
126
|
+
"behaviour.q.p3Note": "A kind below the target gets fewer advice-only lines. It never gets fewer P0 or P1 checks.",
|
|
127
|
+
"behaviour.q.sups": "Proposed suppressions",
|
|
128
|
+
"behaviour.q.waiting": "1 waiting",
|
|
129
|
+
"behaviour.q.waitingPlural": "{n} waiting",
|
|
130
|
+
"behaviour.q.noSups": "No suppression waits for your decision.",
|
|
131
|
+
"behaviour.q.disputed": "disputed 1 time",
|
|
132
|
+
"behaviour.q.disputedPlural": "disputed {n} times",
|
|
133
|
+
"behaviour.q.accept": "Accept",
|
|
134
|
+
"behaviour.q.acceptTitle": "Accept suppression {id}?",
|
|
135
|
+
"behaviour.q.acceptWhat": "The reviewer does not raise this advice here again. P0 and P1 findings are never suppressed.",
|
|
136
|
+
"behaviour.log.title": "Recent answers",
|
|
137
|
+
"behaviour.log.from": "from the ASK lines in your traces",
|
|
138
|
+
"behaviour.log.note": "learned means a habit you accepted chose the recommendation. The question was still shown.",
|
|
139
|
+
"behaviour.localOnly": "local only",
|
|
140
|
+
"behaviour.turnOff": "To stop learning, run:",
|
|
141
|
+
"behaviour.offCosts": "Off costs zero tokens. To start learning, run:",
|
|
142
|
+
"behaviour.railDot": "a habit waits for your decision"
|
|
143
|
+
}
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"knowledge.strip.patterns": "patterns",
|
|
141
141
|
"knowledge.strip.pending": "pending",
|
|
142
142
|
"knowledge.strip.wiki": "wiki",
|
|
143
|
-
"knowledge.sub": "What ORC already knows about this repo: the wiki, cached code-patterns, and repair memory.",
|
|
143
|
+
"knowledge.sub": "What ORC already knows about this repo: the wiki, the code graph, cached code-patterns, and repair memory.",
|
|
144
144
|
"knowledge.syncFree": "Register pages (free)",
|
|
145
145
|
"knowledge.syncOk": "Pages registered",
|
|
146
146
|
"knowledge.tab.coverage": "Coverage",
|
|
@@ -181,5 +181,120 @@
|
|
|
181
181
|
"knowledge.gain.execCalls": "worker retrieval",
|
|
182
182
|
"knowledge.gain.execTokens": "worker tool results",
|
|
183
183
|
"knowledge.gain.sessionTokens": "session tool results",
|
|
184
|
-
"knowledge.gain.noise": "a change smaller than the spread beside it is noise, not a result"
|
|
184
|
+
"knowledge.gain.noise": "a change smaller than the spread beside it is noise, not a result",
|
|
185
|
+
"knowledge.tab.graph": "Code graph",
|
|
186
|
+
"knowledge.cg.exact.title": "All the numbers, as the CLI sent them",
|
|
187
|
+
"knowledge.cg.exact.lead": "The same numbers as the pictures above, with no drawing. Use this card when you need the exact value.",
|
|
188
|
+
"knowledge.cg.state.title": "Where your code graph is now",
|
|
189
|
+
"knowledge.cg.state.lead": "A code graph is always in one of four states. The lit box is the state of this repo now.",
|
|
190
|
+
"knowledge.cg.state.off": "The feature is off. Nothing is built and nothing is read.",
|
|
191
|
+
"knowledge.cg.state.none": "The feature is on, but the map is not built yet.",
|
|
192
|
+
"knowledge.cg.state.fresh": "The map agrees with every file on disk. Lanes can trust it.",
|
|
193
|
+
"knowledge.cg.state.drifted": "Some files changed after the last build. Lanes use the map as hints only.",
|
|
194
|
+
"knowledge.cg.state.toNone": "turn it on",
|
|
195
|
+
"knowledge.cg.state.toFresh": "first build (free)",
|
|
196
|
+
"knowledge.cg.state.toDrifted": "you edit code",
|
|
197
|
+
"knowledge.cg.state.loop": "↺ DRIFTED goes back to FRESH with one free update.",
|
|
198
|
+
"knowledge.cg.state.here": "now",
|
|
199
|
+
"knowledge.cg.state.lineNote": "This is the line a lane prints in the chat when it reads the graph:",
|
|
200
|
+
"knowledge.cg.now.off": "To use the code graph, run this command in a terminal. Turning a feature on is your decision, so there is no button.",
|
|
201
|
+
"knowledge.cg.now.none": "Build the map now. It is free: a parser reads the files, and no model runs.",
|
|
202
|
+
"knowledge.cg.now.drifted": "Update the map now, or let the next lane do it. The update is free.",
|
|
203
|
+
"knowledge.cg.now.fresh": "Nothing to do. The map is current.",
|
|
204
|
+
"knowledge.cg.flow.title": "How the code graph works",
|
|
205
|
+
"knowledge.cg.flow.lead": "The code graph is a local map of your code: where each function is, and what it connects to. It is made in five steps.",
|
|
206
|
+
"knowledge.cg.flow.code": "Your code",
|
|
207
|
+
"knowledge.cg.flow.codeWhat": "The files that git tracks in this repo.",
|
|
208
|
+
"knowledge.cg.flow.files": "{n} files",
|
|
209
|
+
"knowledge.cg.flow.parse": "Parser",
|
|
210
|
+
"knowledge.cg.flow.parseWhat": "Reads each file and finds functions, classes, routes, calls and imports.",
|
|
211
|
+
"knowledge.cg.flow.parseCost": "0 model tokens",
|
|
212
|
+
"knowledge.cg.flow.store": "The map",
|
|
213
|
+
"knowledge.cg.flow.storeWhat": "Kept on this machine, inside the ORC folder of this repo. Only changed files are read again.",
|
|
214
|
+
"knowledge.cg.flow.symbols": "{n} symbols",
|
|
215
|
+
"knowledge.cg.flow.ask": "Questions",
|
|
216
|
+
"knowledge.cg.flow.askWhat": "A lane asks: where is this? Who calls it? What breaks if it changes?",
|
|
217
|
+
"knowledge.cg.flow.card": "A short card",
|
|
218
|
+
"knowledge.cg.flow.cardWhat": "The agent gets a small answer with file:line. Then it reads only those lines.",
|
|
219
|
+
"knowledge.cg.flow.cardCost": "costs context tokens",
|
|
220
|
+
"knowledge.cg.flow.notesTag": "optional layer",
|
|
221
|
+
"knowledge.cg.flow.notes": "Notes: a small model can write one sentence for each changed function. That is the only part that can cost a model. Notes mode here: {mode}.",
|
|
222
|
+
"knowledge.cg.anatomy.title": "What a code graph looks like (an example, not your code)",
|
|
223
|
+
"knowledge.cg.anatomy.lead": "Four small files from a made-up shop, drawn the way the graph sees them. Put the pointer on a dot to see what the graph knows about it.",
|
|
224
|
+
"knowledge.cg.anatomy.hint": "Put the pointer on a dot, or move to it with the Tab key.",
|
|
225
|
+
"knowledge.cg.anatomy.route": "A route. It uses requireAuth as middleware (a ref) and calls findOrder.",
|
|
226
|
+
"knowledge.cg.anatomy.list": "A function. It calls findOrder. Nothing in the example calls it.",
|
|
227
|
+
"knowledge.cg.anatomy.auth": "Middleware. The route refers to it by name, so a change here affects that route.",
|
|
228
|
+
"knowledge.cg.anatomy.find": "Two symbols call it, and it calls query. A change here affects both callers.",
|
|
229
|
+
"knowledge.cg.anatomy.query": "The end of the chain. A change here affects findOrder, and through it, two more symbols.",
|
|
230
|
+
"knowledge.cg.legend.file": "File",
|
|
231
|
+
"knowledge.cg.legend.fileWhat": "One source file. The graph knows its path and which symbols are in it.",
|
|
232
|
+
"knowledge.cg.legend.symbol": "Symbol",
|
|
233
|
+
"knowledge.cg.legend.symbolWhat": "A named thing in a file: a function, a class, a method or a route.",
|
|
234
|
+
"knowledge.cg.legend.call": "Call",
|
|
235
|
+
"knowledge.cg.legend.callWhat": "One symbol calls another. The moving dot goes from the caller to the callee.",
|
|
236
|
+
"knowledge.cg.legend.ref": "Ref",
|
|
237
|
+
"knowledge.cg.legend.refWhat": "A symbol is given by name, for example as middleware or a callback.",
|
|
238
|
+
"knowledge.cg.legend.import": "Import",
|
|
239
|
+
"knowledge.cg.legend.importWhat": "One file imports another file.",
|
|
240
|
+
"knowledge.cg.num.title": "Your graph, in numbers",
|
|
241
|
+
"knowledge.cg.num.filesWhat": "Files the parser read.",
|
|
242
|
+
"knowledge.cg.num.symbolsWhat": "Named things it found in those files.",
|
|
243
|
+
"knowledge.cg.num.perFile": "Symbols per file",
|
|
244
|
+
"knowledge.cg.num.perFileWhat": "The average. A low value means most questions find nothing.",
|
|
245
|
+
"knowledge.cg.num.generationWhat": "The build number. It goes up by one each time the map changes.",
|
|
246
|
+
"knowledge.cg.num.behind": "Changed since the last build",
|
|
247
|
+
"knowledge.cg.num.added": "added",
|
|
248
|
+
"knowledge.cg.num.changed": "changed",
|
|
249
|
+
"knowledge.cg.num.deleted": "deleted",
|
|
250
|
+
"knowledge.cg.num.densityTitle": "How many files hold a named symbol",
|
|
251
|
+
"knowledge.cg.num.hasSymbols": "{pct} % have symbols",
|
|
252
|
+
"knowledge.cg.num.empty": "{pct} % empty ({n} files)",
|
|
253
|
+
"knowledge.cg.num.lang": "{files} files · {symbols} symbols · {zero} empty",
|
|
254
|
+
"knowledge.cg.num.densityNote": "An empty file is not an error. It is a file where the parser found no named function or class, for example a template or a config file.",
|
|
255
|
+
"knowledge.cg.gain.title": "What the graph cost, and what it probably saved",
|
|
256
|
+
"knowledge.cg.gain.noneHint": "When a lane reads the graph, the cost and the estimate show here.",
|
|
257
|
+
"knowledge.cg.gain.lead": "Both bars use the same scale. The top bar is what the graph put into agent context. The bottom bar is the searching it probably made unnecessary.",
|
|
258
|
+
"knowledge.cg.gain.paid": "Paid (exact)",
|
|
259
|
+
"knowledge.cg.gain.avoided": "Avoided (estimate)",
|
|
260
|
+
"knowledge.cg.gain.card": "cards",
|
|
261
|
+
"knowledge.cg.gain.source": "source lines",
|
|
262
|
+
"knowledge.cg.gain.hintsPart": "hints",
|
|
263
|
+
"knowledge.cg.gain.envelope": "envelope",
|
|
264
|
+
"knowledge.cg.gain.range": "the striped part is the range between the low and the high estimate",
|
|
265
|
+
"knowledge.cg.gain.readsTitle": "Which questions lanes asked ({n} calls · {runs} runs)",
|
|
266
|
+
"knowledge.cg.gain.never": "never",
|
|
267
|
+
"knowledge.cg.read.ctx": "Where a symbol is, who calls it, and what it calls.",
|
|
268
|
+
"knowledge.cg.read.forSlice": "The outside view of each file in a task, before an executor starts.",
|
|
269
|
+
"knowledge.cg.read.impact": "What else is affected if these files change.",
|
|
270
|
+
"knowledge.cg.read.map": "The most connected files first. Used for planning.",
|
|
271
|
+
"knowledge.cg.read.changes": "The symbols that the current diff touched, with a risk level.",
|
|
272
|
+
"knowledge.cg.read.cochange": "Files that git history shows change together.",
|
|
273
|
+
"knowledge.cg.read.coverage": "Which tests reach these files.",
|
|
274
|
+
"knowledge.cg.read.path": "The chain of calls from one symbol to another.",
|
|
275
|
+
"knowledge.cg.gloss.title": "What each word means",
|
|
276
|
+
"knowledge.cg.gloss.lead": "Every word on this tab and in the exact card, in plain words.",
|
|
277
|
+
"knowledge.cg.gloss.gStructure": "What the map holds",
|
|
278
|
+
"knowledge.cg.gloss.gFresh": "Is the map current",
|
|
279
|
+
"knowledge.cg.gloss.gQuality": "Is the map useful",
|
|
280
|
+
"knowledge.cg.gloss.gCost": "What it costs",
|
|
281
|
+
"knowledge.cg.gloss.file": "A source file that git tracks. Very large files and generated folders are skipped.",
|
|
282
|
+
"knowledge.cg.gloss.symbol": "A named function, class, method or route that the parser found.",
|
|
283
|
+
"knowledge.cg.gloss.call": "A line from one symbol to another. The graph uses these lines to find callers and impact.",
|
|
284
|
+
"knowledge.cg.gloss.generation": "The build number of the map. Each answer quotes it, so you can see which build an agent used.",
|
|
285
|
+
"knowledge.cg.gloss.freshDrifted": "FRESH: the map agrees with the files. DRIFTED: some files changed since the build, so answers are hints and the code wins.",
|
|
286
|
+
"knowledge.cg.gloss.noneOff": "NONE: the feature is on and no map exists yet. OFF: the feature is off.",
|
|
287
|
+
"knowledge.cg.gloss.behind": "How many files were added, changed and deleted after the last build.",
|
|
288
|
+
"knowledge.cg.gloss.selfHealTerm": "Self-repair",
|
|
289
|
+
"knowledge.cg.gloss.density": "Symbols divided by files. A low value makes most questions come back empty.",
|
|
290
|
+
"knowledge.cg.gloss.thin": "The CLI says THIN when most files hold no named symbol. `orc graph audit` shows which files, and why.",
|
|
291
|
+
"knowledge.cg.gloss.notes": "The value of code_graph_notes. It sets when a small model writes one sentence for each changed function.",
|
|
292
|
+
"knowledge.cg.gloss.paid": "The tokens the graph put into agent context. It is recorded, so it is exact.",
|
|
293
|
+
"knowledge.cg.gloss.envelope": "The part of an answer that is not the card: labels, counts and the lines that lanes print.",
|
|
294
|
+
"knowledge.cg.gloss.avoided": "The searching and file reading that the graph probably made unnecessary. It is an estimate, so it is always a range.",
|
|
295
|
+
"knowledge.cg.gloss.netTerm": "Net",
|
|
296
|
+
"knowledge.cg.gloss.net": "Avoided minus paid, in tokens and in tool calls. It is also a range.",
|
|
297
|
+
"knowledge.cg.gloss.hintsTerm": "Hints",
|
|
298
|
+
"knowledge.cg.gloss.hints": "Short notes that the hook adds when an agent searches or reads a large file. They point to the graph.",
|
|
299
|
+
"knowledge.cg.gloss.measured": "A button that compares your real runs with the graph on and off. It needs three runs in each group."
|
|
185
300
|
}
|
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
{
|
|
2
|
-
"nav.overview": "Overview",
|
|
3
|
-
"nav.settings": "Settings",
|
|
4
|
-
"nav.rules": "Rules",
|
|
5
|
-
"nav.lanes": "Lanes",
|
|
6
|
-
"nav.runs": "Runs",
|
|
7
|
-
"nav.knowledge": "Knowledge",
|
|
8
|
-
"nav.stats": "Stats",
|
|
9
|
-
"nav.
|
|
10
|
-
"nav.
|
|
11
|
-
"nav.
|
|
12
|
-
"nav.
|
|
13
|
-
"nav.
|
|
14
|
-
"nav.
|
|
15
|
-
"nav.
|
|
16
|
-
"nav.
|
|
17
|
-
"nav.
|
|
18
|
-
"nav.
|
|
19
|
-
"nav.
|
|
20
|
-
"nav.
|
|
21
|
-
"nav.
|
|
22
|
-
"nav.
|
|
23
|
-
"nav.
|
|
24
|
-
|
|
1
|
+
{
|
|
2
|
+
"nav.overview": "Overview",
|
|
3
|
+
"nav.settings": "Settings",
|
|
4
|
+
"nav.rules": "Rules",
|
|
5
|
+
"nav.lanes": "Lanes",
|
|
6
|
+
"nav.runs": "Runs",
|
|
7
|
+
"nav.knowledge": "Knowledge",
|
|
8
|
+
"nav.stats": "Stats",
|
|
9
|
+
"nav.behaviour": "Behaviour",
|
|
10
|
+
"nav.flow": "Flow",
|
|
11
|
+
"nav.crosslink": "Crosslink",
|
|
12
|
+
"nav.learn": "Learn",
|
|
13
|
+
"nav.mockrun": "Mocked Skill Use",
|
|
14
|
+
"nav.experiment": "Experiment",
|
|
15
|
+
"nav.maintenance": "Maintenance",
|
|
16
|
+
"nav.pact": "Promises",
|
|
17
|
+
"nav.boundary": "Boundary",
|
|
18
|
+
"nav.handoff": "Self-serve",
|
|
19
|
+
"nav.challenge": "Challenge",
|
|
20
|
+
"nav.extra": "Extra",
|
|
21
|
+
"nav.wait": "Wait",
|
|
22
|
+
"nav.test": "Test",
|
|
23
|
+
"nav.docs": "Docs",
|
|
24
|
+
"nav.hookui": "CLI Hook Interface"
|
|
25
|
+
}
|
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tour.finished": "Tour finished — press ? any time for shortcuts",
|
|
3
|
-
"tour.1.title": "Everything that is not AI",
|
|
4
|
-
"tour.1.text": "This panel drives the deterministic half of ORC — settings, health, runs, knowledge, stats. It never runs a lane and never calls a model. Press 1–9 or 0 to jump between panels; hover here to see the numbers.",
|
|
5
|
-
"tour.2.title": "Is anything wrong right now",
|
|
6
|
-
"tour.2.text": "Install health, wiki freshness, runs still waiting, and your ORC version with a live update check. If one of these is amber, it is the thing worth reading first.",
|
|
7
|
-
"tour.3.title": "One filter over every key",
|
|
8
|
-
"tour.3.text": "Filter by key or description across every section at once — you never need to know which tier a key was filed under. 'Changed only' shows just what you have overridden.",
|
|
9
|
-
"tour.4.title": "The score → model ladder",
|
|
10
|
-
"tour.4.text": "A diagram, not an editor. It comes from the CLI's own table, and it re-draws itself when a setting like opus5_only changes what wins — which is how the precedence rule is taught rather than described.",
|
|
11
|
-
"tour.5.title": "Every run ORC recorded",
|
|
12
|
-
"tour.5.text": "'waiting' means a resume pointer is on disk — that run can be picked up in a fresh session. Click one and it opens in place: checkpoint, state of play and trace, without losing the list.",
|
|
13
|
-
"tour.6.title": "What ORC already knows",
|
|
14
|
-
"tour.6.text": "The wiki, cached code patterns and gotchas. Freshness is computed against the files each doc actually covers, so 'stale' here means something it documents really did change.",
|
|
15
|
-
"tour.7.title": "Pick a lane",
|
|
16
|
-
"tour.7.text": "Copy any lane command, or open a Claude session in this repo. The panel hands off to a terminal and forgets — nothing about that session comes back here.",
|
|
17
|
-
"tour.8.title": "Preview, then apply",
|
|
18
|
-
"tour.8.text": "Nothing here runs on its own. Every action shows the CLI's own read-only preview first and the exact command it will run — and a prune names every file, because a count is not consent.",
|
|
19
|
-
"tour.upgrade.title": "Upgrade is here",
|
|
20
|
-
"tour.upgrade.text": "Click Preview… to see exactly what it would install and run. Nothing happens until you approve it.",
|
|
21
|
-
"tour.9.title": "The promises",
|
|
22
|
-
"tour.9.text": "These are the rules your project promised to follow. ORC checks them for you and tells you which ones the code has moved under.",
|
|
23
|
-
"tour.10.title": "Where ORC stops",
|
|
24
|
-
"tour.10.text": "This is work ORC will not do on its own yet. The checklist says exactly what would change that - and you can always tell it to go ahead anyway.",
|
|
25
|
-
"tour.11.title": "Things you can change yourself",
|
|
26
|
-
"tour.11.text": "No code, no terminal. A check runs afterwards, and the undo command is shown before anything is written.",
|
|
27
|
-
"tour.12.title": "The cheap part of the wiki",
|
|
28
|
-
"tour.12.text": "Refreshing the whole wiki is expensive. This is the short, ranked list that actually matters - and the free repairs always come first.",
|
|
29
|
-
"tour.13.title": "A long document, in one picture",
|
|
30
|
-
"tour.13.text": "Each block is a section, sized by how long it is and coloured by its state. Nothing here loads the document itself - ORC works from this map instead, which is why a long document does not end the session.",
|
|
31
|
-
"tour.14.title": "Work that runs somewhere else",
|
|
32
|
-
"tour.14.text": "One line from nothing to a hundred: how hard a task scored. Every part of it shows where that work actually runs — Claude in blue, a provider you connected in green. A range you have not connected keeps its slot, so \"I left the hard work on Claude on purpose\" never looks like \"there is no hard work\". Nothing leaves this machine until you connect something, test it, and press Apply.",
|
|
33
|
-
"tour.15.title": "Build your own status line",
|
|
34
|
-
"tour.15.text": "Three lines, each holding up to six parts. Line 1 must have something before line 2 can. The preview at the top is exactly what your terminal will show — it is drawn by the same code the bar runs."
|
|
35
|
-
|
|
1
|
+
{
|
|
2
|
+
"tour.finished": "Tour finished — press ? any time for shortcuts",
|
|
3
|
+
"tour.1.title": "Everything that is not AI",
|
|
4
|
+
"tour.1.text": "This panel drives the deterministic half of ORC — settings, health, runs, knowledge, stats. It never runs a lane and never calls a model. Press 1–9 or 0 to jump between panels; hover here to see the numbers.",
|
|
5
|
+
"tour.2.title": "Is anything wrong right now",
|
|
6
|
+
"tour.2.text": "Install health, wiki freshness, runs still waiting, and your ORC version with a live update check. If one of these is amber, it is the thing worth reading first.",
|
|
7
|
+
"tour.3.title": "One filter over every key",
|
|
8
|
+
"tour.3.text": "Filter by key or description across every section at once — you never need to know which tier a key was filed under. 'Changed only' shows just what you have overridden.",
|
|
9
|
+
"tour.4.title": "The score → model ladder",
|
|
10
|
+
"tour.4.text": "A diagram, not an editor. It comes from the CLI's own table, and it re-draws itself when a setting like opus5_only changes what wins — which is how the precedence rule is taught rather than described.",
|
|
11
|
+
"tour.5.title": "Every run ORC recorded",
|
|
12
|
+
"tour.5.text": "'waiting' means a resume pointer is on disk — that run can be picked up in a fresh session. Click one and it opens in place: checkpoint, state of play and trace, without losing the list.",
|
|
13
|
+
"tour.6.title": "What ORC already knows",
|
|
14
|
+
"tour.6.text": "The wiki, cached code patterns and gotchas. Freshness is computed against the files each doc actually covers, so 'stale' here means something it documents really did change.",
|
|
15
|
+
"tour.7.title": "Pick a lane",
|
|
16
|
+
"tour.7.text": "Copy any lane command, or open a Claude session in this repo. The panel hands off to a terminal and forgets — nothing about that session comes back here.",
|
|
17
|
+
"tour.8.title": "Preview, then apply",
|
|
18
|
+
"tour.8.text": "Nothing here runs on its own. Every action shows the CLI's own read-only preview first and the exact command it will run — and a prune names every file, because a count is not consent.",
|
|
19
|
+
"tour.upgrade.title": "Upgrade is here",
|
|
20
|
+
"tour.upgrade.text": "Click Preview… to see exactly what it would install and run. Nothing happens until you approve it.",
|
|
21
|
+
"tour.9.title": "The promises",
|
|
22
|
+
"tour.9.text": "These are the rules your project promised to follow. ORC checks them for you and tells you which ones the code has moved under.",
|
|
23
|
+
"tour.10.title": "Where ORC stops",
|
|
24
|
+
"tour.10.text": "This is work ORC will not do on its own yet. The checklist says exactly what would change that - and you can always tell it to go ahead anyway.",
|
|
25
|
+
"tour.11.title": "Things you can change yourself",
|
|
26
|
+
"tour.11.text": "No code, no terminal. A check runs afterwards, and the undo command is shown before anything is written.",
|
|
27
|
+
"tour.12.title": "The cheap part of the wiki",
|
|
28
|
+
"tour.12.text": "Refreshing the whole wiki is expensive. This is the short, ranked list that actually matters - and the free repairs always come first.",
|
|
29
|
+
"tour.13.title": "A long document, in one picture",
|
|
30
|
+
"tour.13.text": "Each block is a section, sized by how long it is and coloured by its state. Nothing here loads the document itself - ORC works from this map instead, which is why a long document does not end the session.",
|
|
31
|
+
"tour.14.title": "Work that runs somewhere else",
|
|
32
|
+
"tour.14.text": "One line from nothing to a hundred: how hard a task scored. Every part of it shows where that work actually runs — Claude in blue, a provider you connected in green. A range you have not connected keeps its slot, so \"I left the hard work on Claude on purpose\" never looks like \"there is no hard work\". Nothing leaves this machine until you connect something, test it, and press Apply.",
|
|
33
|
+
"tour.15.title": "Build your own status line",
|
|
34
|
+
"tour.15.text": "Three lines, each holding up to six parts. Line 1 must have something before line 2 can. The preview at the top is exactly what your terminal will show — it is drawn by the same code the bar runs.",
|
|
35
|
+
"tour.16.title": "What ORC learned from you",
|
|
36
|
+
"tour.16.text": "This is what ORC learned from your answers. It proposes; you decide."
|
|
37
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"behaviour.title": "Perilaku",
|
|
3
|
+
"behaviour.sub": "Apa yang dipelajari lane tentang cara Anda bekerja, dari jawaban Anda sendiri, hanya di proyek ini. Tidak ada yang keluar dari mesin ini.",
|
|
4
|
+
"behaviour.learning": "Pembelajaran",
|
|
5
|
+
"behaviour.window": "Rentang",
|
|
6
|
+
"behaviour.modeTitle": "Atur pembelajaran perilaku ke {mode}?",
|
|
7
|
+
"behaviour.modeDone": "Pembelajaran perilaku sekarang {mode}.",
|
|
8
|
+
"behaviour.mode.off": "Tidak ada yang direkam dan tidak ada yang dimuat. Biayanya nol token. Jawaban lama tetap disimpan.",
|
|
9
|
+
"behaviour.mode.observe": "Jawaban Anda direkam, jadi halaman ini terisi. Lane berjalan seperti sebelumnya: tanpa saran, tanpa usulan.",
|
|
10
|
+
"behaviour.mode.propose": "Jawaban Anda direkam. Kebiasaan yang diterima menandai opsi biasa Anda, dan satu run menampilkan paling banyak satu usulan. Tidak ada yang berubah tanpa persetujuan Anda.",
|
|
11
|
+
"behaviour.off.eyebrow": "Pembelajaran perilaku nonaktif",
|
|
12
|
+
"behaviour.off.title": "ORC sekarang tidak belajar dari jawaban Anda, dan ini tidak memakan biaya.",
|
|
13
|
+
"behaviour.off.kept": "{n} jawaban dari periode sebelumnya tetap disimpan.",
|
|
14
|
+
"behaviour.off.how": "Gunakan sakelar Pembelajaran di atas, atau jalankan salah satu perintah ini:",
|
|
15
|
+
"behaviour.portrait": "Potret Anda · {window}",
|
|
16
|
+
"behaviour.noProposal": "Tidak ada kebiasaan yang menunggu keputusan Anda sekarang.",
|
|
17
|
+
"behaviour.emptyTitle": "Belum ada jawaban",
|
|
18
|
+
"behaviour.emptyHint": "Jalankan sebuah lane. Setiap pertanyaan yang diajukan direkam di trace-nya, dan halaman ini terisi dari baris tersebut.",
|
|
19
|
+
"behaviour.tile.runs": "Run teramati",
|
|
20
|
+
"behaviour.tile.runsNote": "dari {n} trace",
|
|
21
|
+
"behaviour.tile.answers": "Jawaban terekam",
|
|
22
|
+
"behaviour.tile.answersNote": "satu per pertanyaan yang Anda lihat",
|
|
23
|
+
"behaviour.tile.saved": "Pertanyaan dihemat",
|
|
24
|
+
"behaviour.tile.savedNote": "dijawab untuk Anda oleh ledger atau config",
|
|
25
|
+
"behaviour.tile.qpr": "Pertanyaan per run",
|
|
26
|
+
"behaviour.tile.qprNote": "lebih sedikit pertanyaan, tidak pernah lebih sedikit pemeriksaan",
|
|
27
|
+
"behaviour.tile.prev": "sebelumnya: {n}",
|
|
28
|
+
"behaviour.tabsLabel": "Tampilan perilaku",
|
|
29
|
+
"behaviour.tab.habits": "Kebiasaan",
|
|
30
|
+
"behaviour.tab.rhythm": "Ritme",
|
|
31
|
+
"behaviour.tab.gotchas": "Gotcha",
|
|
32
|
+
"behaviour.tab.quality": "Kualitas review",
|
|
33
|
+
"behaviour.tab.log": "Log jawaban",
|
|
34
|
+
"behaviour.nextRun": "Run berikutnya",
|
|
35
|
+
"behaviour.nextRunNote": "apa yang dilakukan kebiasaan Anda pada run berikutnya di setiap lane",
|
|
36
|
+
"behaviour.legendTitle": "Bagaimana sebuah kebiasaan bergerak",
|
|
37
|
+
"behaviour.state.observed": "jawaban belum cukup, atau aturan belum lolos",
|
|
38
|
+
"behaviour.state.proposed": "aturan lolos. Keputusan ada di tangan Anda",
|
|
39
|
+
"behaviour.state.applied": "sedang dipakai, dengan tombol batal di kartunya",
|
|
40
|
+
"behaviour.state.declined": "Anda bilang jangan sekarang. Bisa muncul lagi nanti",
|
|
41
|
+
"behaviour.state.neverAsk": "Anda bilang jangan pernah. Tetap direkam",
|
|
42
|
+
"behaviour.state.stale": "jawaban Anda berubah, jadi kebiasaan ini dijeda",
|
|
43
|
+
"behaviour.state.shadowed": "file config Anda mengatur kunci ini, jadi file yang menang",
|
|
44
|
+
"behaviour.state.never": "ORC menampilkan ini dan tidak pernah mengusulkannya",
|
|
45
|
+
"behaviour.class.apply": "menjawab kunci config pada peringkat learned. Config Anda sendiri selalu menang",
|
|
46
|
+
"behaviour.class.suggest": "menaruh opsi biasa Anda di urutan pertama. Pertanyaan tetap diajukan",
|
|
47
|
+
"behaviour.class.never": "hanya ditampilkan. Seseorang membuat pilihan ini setiap kali",
|
|
48
|
+
"behaviour.by.user": "Anda yang memilih",
|
|
49
|
+
"behaviour.by.ledger": "Anda sudah menyatakannya lebih dulu, di ledger",
|
|
50
|
+
"behaviour.by.learned": "kebiasaan yang Anda terima memilih rekomendasi",
|
|
51
|
+
"behaviour.by.config": "sebuah kunci config yang menjawab",
|
|
52
|
+
"behaviour.by.default": "nilai bawaan yang menjawab",
|
|
53
|
+
"behaviour.field.rule": "aturan",
|
|
54
|
+
"behaviour.field.context": "konteks",
|
|
55
|
+
"behaviour.anyContext": "konteks apa pun",
|
|
56
|
+
"behaviour.streakLabel": "{n} jawaban terakhir: {top} pilihan teratas, {pre} sudah terpilih",
|
|
57
|
+
"behaviour.ringLabel": "{pct}% memilih opsi teratas",
|
|
58
|
+
"behaviour.ringTop": "teratas",
|
|
59
|
+
"behaviour.act.accept": "Jadikan kebiasaan saya",
|
|
60
|
+
"behaviour.act.acceptTitle": "Terima kebiasaan {id}?",
|
|
61
|
+
"behaviour.act.acceptWhat": "ORC memakai ini mulai run berikutnya. File config Anda tetap menang. Anda bisa membatalkannya dengan Lupakan di kartu yang sama.",
|
|
62
|
+
"behaviour.act.decline": "Jangan sekarang",
|
|
63
|
+
"behaviour.act.declineTitle": "Jangan sekarang?",
|
|
64
|
+
"behaviour.act.declineWhat": "Usulan ini bisa muncul lagi setelah 10 jawaban dan 14 hari.",
|
|
65
|
+
"behaviour.act.never": "Jangan tanya lagi",
|
|
66
|
+
"behaviour.act.neverTitle": "Jangan pernah tanya lagi?",
|
|
67
|
+
"behaviour.act.neverWhat": "ORC tetap merekam jawaban Anda tetapi tidak mengusulkan ini lagi. Tanya saya lagi mengembalikannya.",
|
|
68
|
+
"behaviour.act.forget": "Lupakan",
|
|
69
|
+
"behaviour.act.forgetTitle": "Lupakan kebiasaan {id}?",
|
|
70
|
+
"behaviour.act.forgetWhat": "Kebiasaan ini langsung berhenti. File config Anda atau nilai bawaan menjawab lagi. Jawaban lama tidak dihitung lagi.",
|
|
71
|
+
"behaviour.act.reset": "Tanya saya lagi",
|
|
72
|
+
"behaviour.act.resetTitle": "Tanya saya lagi?",
|
|
73
|
+
"behaviour.act.resetWhat": "Ini menghapus penolakan Anda. Jawaban tetap disimpan, dan usulan bisa muncul lagi.",
|
|
74
|
+
"behaviour.act.manual": "Ini sengaja tanpa tombol. Seseorang mengetik perintah ini:",
|
|
75
|
+
"behaviour.confirmNote": "Ini menjalankan satu perintah lokal. Gratis dan bisa dibatalkan:",
|
|
76
|
+
"behaviour.runIt": "Jalankan",
|
|
77
|
+
"behaviour.done": "{id}: menjalankan {command}.",
|
|
78
|
+
"behaviour.undoWhere": "Tombol batal ada di kartu yang sama.",
|
|
79
|
+
"behaviour.history": "Riwayat",
|
|
80
|
+
"behaviour.historyNote": "Setiap perubahan, terbaru di atas, dengan perintah untuk membatalkannya.",
|
|
81
|
+
"behaviour.rhythm.when": "Kapan Anda menjalankan ORC",
|
|
82
|
+
"behaviour.rhythm.whenNote": "run per hari dan jam, waktu lokal",
|
|
83
|
+
"behaviour.rhythm.heatLabel": "{n} run per hari dan jam",
|
|
84
|
+
"behaviour.rhythm.cell": "{day} {hour}:00 — {n} run",
|
|
85
|
+
"behaviour.rhythm.lanes": "Lane yang Anda pakai",
|
|
86
|
+
"behaviour.rhythm.runs": "1 run",
|
|
87
|
+
"behaviour.rhythm.runsPlural": "{n} run",
|
|
88
|
+
"behaviour.rhythm.qpr": "Pertanyaan per run",
|
|
89
|
+
"behaviour.rhythm.qprLabel": "pertanyaan per run, {from} ke {to} selama {n} minggu",
|
|
90
|
+
"behaviour.rhythm.qprNote": "Setiap kebiasaan yang Anda terima dan setiap jawaban ledger menghapus satu pertanyaan. Tujuannya lebih sedikit pertanyaan, tidak pernah lebih sedikit pemeriksaan.",
|
|
91
|
+
"behaviour.rhythm.how": "Bagaimana setiap jawaban diberikan",
|
|
92
|
+
"behaviour.rhythm.howLabel": "jawaban per minggu selama {n} minggu, menurut cara diberikan",
|
|
93
|
+
"behaviour.day.mon": "Sen",
|
|
94
|
+
"behaviour.day.tue": "Sel",
|
|
95
|
+
"behaviour.day.wed": "Rab",
|
|
96
|
+
"behaviour.day.thu": "Kam",
|
|
97
|
+
"behaviour.day.fri": "Jum",
|
|
98
|
+
"behaviour.day.sat": "Sab",
|
|
99
|
+
"behaviour.day.sun": "Min",
|
|
100
|
+
"behaviour.target": "target {v}",
|
|
101
|
+
"behaviour.g.title": "Gotcha",
|
|
102
|
+
"behaviour.g.none": "Belum ada gotcha yang terekam",
|
|
103
|
+
"behaviour.g.noneHint": "Loop perbaikan yang berubah dari merah ke hijau menulis yang pertama.",
|
|
104
|
+
"behaviour.g.sources": "Dari mana gotcha berasal",
|
|
105
|
+
"behaviour.g.alwaysOn": "pembelajaran review selalu aktif",
|
|
106
|
+
"behaviour.g.lastSync": "sinkron terakhir {at}",
|
|
107
|
+
"behaviour.g.noSync": "belum ada sinkron",
|
|
108
|
+
"behaviour.g.statusNote": "Kandidat sudah terlihat tetapi belum terbukti. Perlu 3 kasus di 2 PR atau lebih, atau persetujuan Anda. Quiet berarti tidak ada kasus dalam 90 hari. Orphaned berarti cakupannya tidak cocok dengan file mana pun sekarang. Hanya manusia yang menghapus gotcha.",
|
|
109
|
+
"behaviour.g.list": "Gotcha",
|
|
110
|
+
"behaviour.g.listNote": "CLI mengirimnya dalam urutannya sendiri",
|
|
111
|
+
"behaviour.g.spark": "{n} hit dalam {w} minggu terakhir",
|
|
112
|
+
"behaviour.g.preview": "Apa yang akan dilihat reviewer",
|
|
113
|
+
"behaviour.g.previewFree": "baca gratis",
|
|
114
|
+
"behaviour.g.previewHint": "Ketik path yang berubah, dipisah koma. Ini menampilkan kartu persis yang diterima reviewer.",
|
|
115
|
+
"behaviour.g.previewLabel": "path yang berubah",
|
|
116
|
+
"behaviour.g.previewEmpty": "Ketik sebuah path untuk melihat kartunya.",
|
|
117
|
+
"behaviour.g.noCard": "Tidak ada gotcha yang cocok dengan path ini ({n} diketahui). Reviewer tidak mendapat kartu gotcha.",
|
|
118
|
+
"behaviour.q.cats": "Temuan yang diterima per jenis",
|
|
119
|
+
"behaviour.q.reviews": "1 review",
|
|
120
|
+
"behaviour.q.reviewsPlural": "{n} review",
|
|
121
|
+
"behaviour.q.none": "Belum ada review dalam rentang ini.",
|
|
122
|
+
"behaviour.q.trend": "Penerimaan, 12 review terakhir",
|
|
123
|
+
"behaviour.q.trendLabel": "penerimaan selama {n} review terakhir",
|
|
124
|
+
"behaviour.q.p3": "Temuan saran saja per review (P3)",
|
|
125
|
+
"behaviour.q.p3Label": "temuan saran saja selama {n} review terakhir",
|
|
126
|
+
"behaviour.q.p3Note": "Jenis di bawah target mendapat lebih sedikit baris saran. Tidak pernah lebih sedikit pemeriksaan P0 atau P1.",
|
|
127
|
+
"behaviour.q.sups": "Usulan penekanan",
|
|
128
|
+
"behaviour.q.waiting": "1 menunggu",
|
|
129
|
+
"behaviour.q.waitingPlural": "{n} menunggu",
|
|
130
|
+
"behaviour.q.noSups": "Tidak ada penekanan yang menunggu keputusan Anda.",
|
|
131
|
+
"behaviour.q.disputed": "dibantah 1 kali",
|
|
132
|
+
"behaviour.q.disputedPlural": "dibantah {n} kali",
|
|
133
|
+
"behaviour.q.accept": "Terima",
|
|
134
|
+
"behaviour.q.acceptTitle": "Terima penekanan {id}?",
|
|
135
|
+
"behaviour.q.acceptWhat": "Reviewer tidak lagi memunculkan saran ini di sini. Temuan P0 dan P1 tidak pernah ditekan.",
|
|
136
|
+
"behaviour.log.title": "Jawaban terbaru",
|
|
137
|
+
"behaviour.log.from": "dari baris ASK di trace Anda",
|
|
138
|
+
"behaviour.log.note": "learned berarti kebiasaan yang Anda terima memilih rekomendasi. Pertanyaannya tetap ditampilkan.",
|
|
139
|
+
"behaviour.localOnly": "hanya lokal",
|
|
140
|
+
"behaviour.turnOff": "Untuk berhenti belajar, jalankan:",
|
|
141
|
+
"behaviour.offCosts": "Nonaktif berarti nol token. Untuk mulai belajar, jalankan:",
|
|
142
|
+
"behaviour.railDot": "sebuah kebiasaan menunggu keputusan Anda"
|
|
143
|
+
}
|