claudecode-omc 5.6.8 → 5.11.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.
- package/.local/settings/settings.json +8 -0
- package/.local/skills/prompt-optimizer/SKILL.md +262 -19
- package/.omc-curation/ecc-selection.json +80 -0
- package/.omc-curation/governance.json +116 -0
- package/.omc-curation/sources.lock.json +30 -0
- package/README.md +78 -4
- package/bundled/manifest.json +6 -5
- package/bundled/upstream/anthropic-skills/.omc-source/bundle.json +18 -0
- package/bundled/upstream/anthropic-skills/.omc-source/provenance.json +399 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/SKILL.md +18 -17
- package/bundled/upstream/anthropic-skills/skills/claude-api/curl/examples.md +9 -9
- package/bundled/upstream/anthropic-skills/skills/claude-api/curl/managed-agents.md +4 -4
- package/bundled/upstream/anthropic-skills/skills/claude-api/go/managed-agents/README.md +2 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/java/claude-api.md +2 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/java/managed-agents/README.md +2 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/php/claude-api.md +10 -10
- package/bundled/upstream/anthropic-skills/skills/claude-api/php/managed-agents/README.md +2 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/README.md +16 -16
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/batches.md +3 -3
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/files-api.md +3 -3
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/streaming.md +7 -7
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/tool-use.md +19 -19
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/managed-agents/README.md +3 -3
- package/bundled/upstream/anthropic-skills/skills/claude-api/ruby/claude-api.md +4 -4
- package/bundled/upstream/anthropic-skills/skills/claude-api/ruby/managed-agents/README.md +2 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/error-codes.md +5 -5
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/live-sources.md +3 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-api-reference.md +10 -4
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-core.md +19 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-environments.md +6 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-multiagent.md +1 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-onboarding.md +3 -3
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-overview.md +3 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +173 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-tools.md +10 -4
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/model-migration.md +113 -13
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/models.md +14 -11
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/prompt-caching.md +2 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/tool-use-concepts.md +4 -4
- package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/README.md +15 -15
- package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/batches.md +2 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/files-api.md +1 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/streaming.md +5 -5
- package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/tool-use.md +15 -15
- package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/managed-agents/README.md +3 -3
- package/bundled/upstream/ecc/.omc-source/bundle.json +2 -1
- package/bundled/upstream/ecc/.omc-source/last-plan-apply.json +108 -24
- package/bundled/upstream/ecc/.omc-source/manifests/.claude-plugin/marketplace.json +3 -3
- package/bundled/upstream/ecc/.omc-source/provenance.json +563 -0
- package/bundled/upstream/ecc/agents/marketing-agent.md +159 -0
- package/bundled/upstream/ecc/agents/react-build-resolver.md +215 -0
- package/bundled/upstream/ecc/agents/react-reviewer.md +167 -0
- package/bundled/upstream/ecc/agents/typescript-reviewer.md +3 -0
- package/bundled/upstream/ecc/commands/harness-audit.md +17 -10
- package/bundled/upstream/ecc/commands/marketing-campaign.md +129 -0
- package/bundled/upstream/ecc/commands/react-build.md +187 -0
- package/bundled/upstream/ecc/commands/react-review.md +170 -0
- package/bundled/upstream/ecc/commands/react-test.md +265 -0
- package/bundled/upstream/ecc/skills/benchmark-optimization-loop/SKILL.md +69 -0
- package/bundled/upstream/ecc/skills/blender-motion-state-inspection/SKILL.md +164 -0
- package/bundled/upstream/ecc/skills/canary-watch/SKILL.md +9 -1
- package/bundled/upstream/ecc/skills/continuous-learning-v2/hooks/observe.sh +31 -9
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/detect-project.sh +38 -4
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +319 -12
- package/bundled/upstream/ecc/skills/data-throughput-accelerator/SKILL.md +72 -0
- package/bundled/upstream/ecc/skills/dynamic-workflow-mode/SKILL.md +123 -0
- package/bundled/upstream/ecc/skills/frontend-a11y/SKILL.md +446 -0
- package/bundled/upstream/ecc/skills/ito-basket-compare/SKILL.md +63 -0
- package/bundled/upstream/ecc/skills/ito-data-atlas-agent/SKILL.md +63 -0
- package/bundled/upstream/ecc/skills/ito-market-intelligence/SKILL.md +60 -0
- package/bundled/upstream/ecc/skills/ito-trade-planner/SKILL.md +67 -0
- package/bundled/upstream/ecc/skills/latency-critical-systems/SKILL.md +73 -0
- package/bundled/upstream/ecc/skills/marketing-campaign/SKILL.md +113 -0
- package/bundled/upstream/ecc/skills/nextjs-turbopack/SKILL.md +13 -0
- package/bundled/upstream/ecc/skills/parallel-execution-optimizer/SKILL.md +72 -0
- package/bundled/upstream/ecc/skills/prediction-market-oracle-research/SKILL.md +63 -0
- package/bundled/upstream/ecc/skills/prediction-market-risk-review/SKILL.md +60 -0
- package/bundled/upstream/ecc/skills/react-patterns/SKILL.md +341 -0
- package/bundled/upstream/ecc/skills/react-performance/SKILL.md +574 -0
- package/bundled/upstream/ecc/skills/react-testing/SKILL.md +423 -0
- package/bundled/upstream/ecc/skills/recsys-pipeline-architect/SKILL.md +114 -0
- package/bundled/upstream/ecc/skills/recursive-decision-ledger/SKILL.md +79 -0
- package/bundled/upstream/ecc/skills/social-publisher/SKILL.md +115 -0
- package/bundled/upstream/ecc/skills/team-agent-orchestration/SKILL.md +110 -0
- package/bundled/upstream/ecc/skills/uncloud/SKILL.md +343 -0
- package/bundled/upstream/ecc/skills/windows-desktop-e2e/SKILL.md +99 -0
- package/bundled/upstream/impeccable/.omc-source/bundle.json +20 -0
- package/bundled/upstream/impeccable/.omc-source/provenance.json +105 -0
- package/bundled/upstream/impeccable/agents/impeccable-manual-edit-applier.md +97 -0
- package/bundled/upstream/impeccable/skills/impeccable/SKILL.md +168 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/adapt.md +311 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/animate.md +201 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/audit.md +133 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/bolder.md +113 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/brand.md +108 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/clarify.md +288 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/codex.md +105 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/colorize.md +257 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/craft.md +123 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/critique.md +767 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/delight.md +302 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/distill.md +111 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/document.md +429 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/extract.md +69 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/harden.md +347 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/hooks.md +88 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/init.md +172 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/interaction-design.md +189 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/layout.md +161 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/live.md +718 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/onboard.md +234 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/optimize.md +258 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/overdrive.md +130 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/polish.md +241 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/product.md +60 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/quieter.md +99 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/shape.md +165 -0
- package/bundled/upstream/impeccable/skills/impeccable/reference/typeset.md +279 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/command-metadata.json +94 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/context-signals.mjs +225 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/context.mjs +280 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/critique-storage.mjs +242 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detect.mjs +21 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/browser/injected/index.mjs +1735 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/cli/main.mjs +244 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +4907 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/detect-antipatterns.mjs +43 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +252 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +552 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +1013 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +208 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/findings.mjs +12 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/node/file-system.mjs +198 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/registry/antipatterns.mjs +419 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/rules/checks.mjs +2671 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/shared/color.mjs +124 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/shared/constants.mjs +101 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-admin.mjs +574 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-before-edit.mjs +473 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-lib.mjs +1286 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/hook.mjs +61 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/design-parser.mjs +835 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/impeccable-paths.mjs +126 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/is-generated.mjs +69 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/browser-script-parts.mjs +49 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/completion.mjs +19 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/event-validation.mjs +137 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/insert-ui.mjs +458 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/manual-apply.mjs +939 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/manual-edit-routes.mjs +357 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/manual-edits-buffer.mjs +152 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/session-store.mjs +289 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/svelte-component.mjs +826 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/sveltekit-adapter.mjs +274 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/ui-core.mjs +180 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live/vocabulary.mjs +36 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-accept.mjs +812 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-browser-dom.js +146 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-browser.js +11086 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-commit-manual-edits.mjs +1241 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-complete.mjs +75 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-inject.mjs +583 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-insert.mjs +272 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-manual-edit-evidence.mjs +363 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-poll.mjs +379 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-resume.mjs +94 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-server.mjs +1134 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-status.mjs +61 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-wrap.mjs +894 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live.mjs +246 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/palette.mjs +633 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/pin.mjs +214 -0
- package/bundled/upstream/oh-my-claudecode/.omc-source/bundle.json +2 -1
- package/bundled/upstream/oh-my-claudecode/.omc-source/provenance.json +116 -0
- package/bundled/upstream/oh-my-claudecode/skills/autopilot/SKILL.md +7 -0
- package/bundled/upstream/oh-my-claudecode/skills/cancel/SKILL.md +1 -0
- package/bundled/upstream/oh-my-claudecode/skills/deep-interview/SKILL.md +39 -5
- package/bundled/upstream/oh-my-claudecode/skills/hud/SKILL.md +1 -0
- package/bundled/upstream/oh-my-claudecode/skills/local-build-reminder/SKILL.md +78 -0
- package/bundled/upstream/oh-my-claudecode/skills/omc-doctor/SKILL.md +1 -1
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/SKILL.md +26 -10
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/01-install-claude-md.md +3 -3
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/02-configure.md +6 -4
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/03-integrations.md +1 -1
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/04-welcome.md +2 -2
- package/bundled/upstream/oh-my-claudecode/skills/omc-teams/SKILL.md +6 -6
- package/bundled/upstream/oh-my-claudecode/skills/plan/SKILL.md +44 -32
- package/bundled/upstream/oh-my-claudecode/skills/ralph/SKILL.md +45 -21
- package/bundled/upstream/oh-my-claudecode/skills/ralplan/SKILL.md +1 -1
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/SKILL.md +7 -0
- package/bundled/upstream/oh-my-claudecode/skills/self-improve/scripts/resolve-paths.mjs +39 -15
- package/bundled/upstream/oh-my-claudecode/skills/team/SKILL.md +132 -90
- package/bundled/upstream/oh-my-claudecode/skills/ultragoal/SKILL.md +93 -0
- package/bundled/upstream/oh-my-claudecode/skills/ultraqa/SKILL.md +28 -13
- package/bundled/upstream/oh-my-claudecode/skills/ultrawork/SKILL.md +7 -0
- package/bundled/upstream/superpowers/.omc-source/bundle.json +2 -1
- package/bundled/upstream/superpowers/.omc-source/provenance.json +63 -0
- package/package.json +2 -1
- package/src/catalog/source-catalog.js +10 -4
- package/src/cli/index.js +4 -0
- package/src/cli/plan.js +14 -2
- package/src/cli/setup.js +52 -13
- package/src/cli/skill.js +1 -1
- package/src/cli/source.js +271 -14
- package/src/config/sources.js +82 -1
- package/src/merge/content-patch.js +88 -0
- package/templates/merge-config.json +1 -8
- package/bundled/upstream/ecc/skills/strategic-compact/suggest-compact.sh +0 -54
|
@@ -21,8 +21,42 @@ description: >-
|
|
|
21
21
|
origin: community
|
|
22
22
|
metadata:
|
|
23
23
|
author: YannJY02
|
|
24
|
-
version: "1.
|
|
24
|
+
version: "1.3.0"
|
|
25
25
|
changelog: |
|
|
26
|
+
1.3.0 — Phase 0.7 Project Context Probe. The skill now reads the actual
|
|
27
|
+
repo (stack manifest, git state, README/CLAUDE.md/AGENTS.md)
|
|
28
|
+
before producing the optimized prompt, so recommendations cite
|
|
29
|
+
real file paths, branch names, and declared versions instead of
|
|
30
|
+
generic templates. Hard rules R1-R6.5 prevent the probe from
|
|
31
|
+
misleading downstream agents:
|
|
32
|
+
• R1 — 3-section Facts / Inferences (UNVERIFIED) / Unknown block
|
|
33
|
+
• R2 — never reference code symbols the probe did not actually Read
|
|
34
|
+
(commit subjects and branch names are not code verification)
|
|
35
|
+
• R3 — branch names do not determine intent; skill selection uses
|
|
36
|
+
user prompt + Facts.stack only
|
|
37
|
+
• R4 — declared manifest version ≠ installed version; lockfile
|
|
38
|
+
must be checked when exact runtime version matters
|
|
39
|
+
• R5 — README/CLAUDE.md/AGENTS.md content gets 1 line + source +
|
|
40
|
+
last-modified date; declared-vs-detected conflicts get
|
|
41
|
+
an explicit ⚠️ flag
|
|
42
|
+
• R6 — mandatory "Re-verify before mutating" footer in every block
|
|
43
|
+
• R6.5 — probe failures are explicit ("PROBE FAILED: <reason>"),
|
|
44
|
+
never silently empty
|
|
45
|
+
Section 3 (Optimized Prompt — Full) now MUST start with the verbatim
|
|
46
|
+
Context Block and cite ≥ 2 Facts. Self-check gate added before
|
|
47
|
+
publishing output. New Example 5 demonstrates the full probe →
|
|
48
|
+
3-section block → safe "starting points to verify" output pattern
|
|
49
|
+
on a real SwiftUI iOS scenario. Budget: ≤ 6 read-only tool calls.
|
|
50
|
+
Graceful degradation: works in non-git dirs, unknown stacks, and
|
|
51
|
+
repos without self-description docs.
|
|
52
|
+
1.2.1 — Fix phantom `/tdd` references (13 occurrences across Phase 1.5
|
|
53
|
+
template, Phase 3 By-Intent table, Section 4 Quick Patterns,
|
|
54
|
+
and all four examples). No `tdd` skill or command actually
|
|
55
|
+
exists; the canonical name is `test-driven-development`
|
|
56
|
+
(superpowers) — already mapped in the Phase 0.5 alias table
|
|
57
|
+
but not applied to our own templates. This release closes that
|
|
58
|
+
self-inconsistency. Added explicit `/tdd → /test-driven-development`
|
|
59
|
+
row in the alias table to prevent regression.
|
|
26
60
|
1.2.0 — Skill Existence & Alias Resolution (Phase 0.5) so we stop
|
|
27
61
|
recommending phantom skills (`tdd-workflow`, `search-first`,
|
|
28
62
|
`blueprint`, `tdd-guide` agent, etc. that don't exist on most
|
|
@@ -146,6 +180,7 @@ or add a verification note.
|
|
|
146
180
|
| Generic ECC name | superpowers / OMC actual | Verification |
|
|
147
181
|
|---|---|---|
|
|
148
182
|
| `tdd-workflow` (skill) | `test-driven-development` (superpowers) OR `tdd-generator` (OMC) | `ls ~/.claude/skills/test-driven-development` |
|
|
183
|
+
| `/tdd` (slash) — **no such command/skill** | `/test-driven-development` (slash-invokes the superpowers skill) | `ls ~/.claude/skills/test-driven-development` |
|
|
149
184
|
| `verification-loop` (skill) | `verification-before-completion` (superpowers) OR `verification-loop` (OMC) | both common |
|
|
150
185
|
| `search-first` (skill) | `external-context` OR `iterative-retrieval` | check both |
|
|
151
186
|
| `blueprint` (skill) | **`conductor`** (preferred multi-session driver) | `ls ~/.claude/skills/conductor` |
|
|
@@ -168,7 +203,83 @@ they run `omc-manage skill index --scope user` (or just `omc-manage setup`,
|
|
|
168
203
|
which regenerates it as a side effect). For a quality audit, use
|
|
169
204
|
`/oh-my-claudecode:skill-stocktake`.
|
|
170
205
|
|
|
171
|
-
### Phase
|
|
206
|
+
### Phase 0.7: Project Context Probe (cheap, deterministic)
|
|
207
|
+
|
|
208
|
+
**Goal:** Ground the optimized prompt in *what is actually true in this repo
|
|
209
|
+
right now*, not in generic templates. Without this phase, the skill produces
|
|
210
|
+
plausible-sounding prompts that may reference nonexistent files, wrong
|
|
211
|
+
versions, or off-stack tooling — the user's actual complaint.
|
|
212
|
+
|
|
213
|
+
**Budget:** ≤ 6 read-only tool calls. Each step is independent — failures
|
|
214
|
+
degrade gracefully (see R6.5), never abort the whole phase.
|
|
215
|
+
|
|
216
|
+
**5 probe actions, in order:**
|
|
217
|
+
|
|
218
|
+
| # | Action | Tool & Command | Output field |
|
|
219
|
+
|---|--------|---------------|--------------|
|
|
220
|
+
| 1 | Confirm git repo | `Bash: git rev-parse --is-inside-work-tree 2>/dev/null` | `is_git_repo: true/false` |
|
|
221
|
+
| 2 | Scan stack manifests at repo root | One `Glob` with combined pattern: `{package.json,Package.swift,Cargo.toml,go.mod,pyproject.toml,requirements.txt,*.csproj,Gemfile,pubspec.yaml,pom.xml,build.gradle*,mix.exs,composer.json}` | `manifests: [paths]` |
|
|
222
|
+
| 3 | Read top manifest | `Read` first 50 lines of highest-priority match | `stack: <name + declared version>`, `stack_source: <manifest>:<line>` |
|
|
223
|
+
| 4 | Git current state (one call) | `Bash: git rev-parse --abbrev-ref HEAD && echo --- && git status --short && echo --- && git log -3 --oneline && echo --- && git diff --stat HEAD~1 2>/dev/null \| head -10` | `branch`, `uncommitted`, `recent_commits` (subjects only), `recent_diff_stat` |
|
|
224
|
+
| 5 | Project self-description | `Glob {CLAUDE.md,AGENTS.md,README.md}` at repo root; `Read` first 30 lines of highest-priority match (priority: CLAUDE.md > AGENTS.md > README.md) | `intent_source`, `intent_text` (first non-empty heading + first ~3 prose lines), `intent_last_modified` |
|
|
225
|
+
|
|
226
|
+
**Graceful degradation:**
|
|
227
|
+
|
|
228
|
+
- Action 1 = `false` → skip action 4. Mark `Repo`, `branch`, `uncommitted`, `recent_commits` as `not in a git repo`. Continue actions 2, 3, 5.
|
|
229
|
+
- Action 2 returns `[]` → `stack: unknown — language-agnostic recommendations apply`.
|
|
230
|
+
- Action 5 finds none → `intent: no self-description found at repo root`.
|
|
231
|
+
- Any single step throws → mark only that field `PROBE FAILED: <one-line reason>` (R6.5). Continue.
|
|
232
|
+
|
|
233
|
+
**Output: Project Context Block (3-section structure, ALWAYS produced)**
|
|
234
|
+
|
|
235
|
+
The probe **always** emits this block, even when most fields are `UNKNOWN`.
|
|
236
|
+
It is appended to the top of `Section 3: Optimized Prompt` (see Output
|
|
237
|
+
Format) and must remain verbatim — no paraphrasing, no summarization.
|
|
238
|
+
|
|
239
|
+
```markdown
|
|
240
|
+
## 🔍 Project Context (probed YYYY-MM-DD HH:MM — starting point, NOT ground truth)
|
|
241
|
+
|
|
242
|
+
### Facts (directly observed in probe)
|
|
243
|
+
- Stack: <name + declared version> ← from `<manifest>:<line>` (declared, installed version not verified)
|
|
244
|
+
- Repo: <basename of cwd> @ branch `<branch>` (<N commits ahead of <base>, or "no upstream tracking">)
|
|
245
|
+
- Uncommitted: <M/A/D files, or "clean working tree">
|
|
246
|
+
- Recent commit subjects (commit messages only — NOT code verification):
|
|
247
|
+
- `<hash>` "<subject>"
|
|
248
|
+
- `<hash>` "<subject>"
|
|
249
|
+
- Recent diff scope (`git diff --stat HEAD~1`): <file>: +N -M (or "no diff since HEAD~1")
|
|
250
|
+
- Project self-description (`<source-file>:<line>`, last modified <date>): "<first non-empty heading + opening line>"
|
|
251
|
+
|
|
252
|
+
### Inferences (UNVERIFIED — confirm before acting)
|
|
253
|
+
- <e.g., "Likely SwiftUI iOS work based on Package.swift + branch name">
|
|
254
|
+
- <e.g., "Stack manifest declares X but no lockfile read — installed version may differ">
|
|
255
|
+
|
|
256
|
+
### Unknown / Not Probed
|
|
257
|
+
- Whether <symbol mentioned in commit subjects> actually exists in source — Read source before referencing it as if it does
|
|
258
|
+
- Runtime/installed versions (only declared manifest was read)
|
|
259
|
+
- Whether project self-description still matches current architecture (last modified <date>)
|
|
260
|
+
|
|
261
|
+
⚠️ Re-verify before mutating: run `git status`, `Read` actual files. This block
|
|
262
|
+
is probe-time context, not authoritative. If observation contradicts this
|
|
263
|
+
block, trust observation and ignore this block.
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**6 anti-misleading hard rules (binding on Phase 3 / Phase 4 outputs):**
|
|
267
|
+
|
|
268
|
+
These rules prevent the probe from producing context that downstream agents
|
|
269
|
+
treat as truth when it is in fact inference, name-based guessing, or stale
|
|
270
|
+
data. Violation = regenerate the optimized prompt.
|
|
271
|
+
|
|
272
|
+
| ID | Rule | Why |
|
|
273
|
+
|----|------|-----|
|
|
274
|
+
| **R1** | Block MUST be 3-section: `### Facts` / `### Inferences (UNVERIFIED)` / `### Unknown / Not Probed`. Never mix categories. A fact mis-labeled as fact-but-actually-inferred is the primary misleading vector. | Forces explicit epistemic status on every line. |
|
|
275
|
+
| **R2** | **Do not reference code symbols the probe did not actually read.** A symbol seen only in a commit subject or branch name is NOT verified to exist. It may appear in `Inferences` or `Unknown`, never as an imperative ("extend `AuthService`"). | A commit titled "add AuthService stub" does not prove `AuthService` exists, is complete, or is at the path one might guess. |
|
|
276
|
+
| **R3** | **Branch names do not determine intent.** A branch named `feat/auth` is a weak signal at best; it goes only in `Inferences`. Phase 3 skill selection is driven only by `user prompt + Facts.stack`. | Branch names are user-authored labels with no semantic guarantee. |
|
|
277
|
+
| **R4** | **Manifest version ≠ installed version.** All version facts must be marked `declared in <manifest>, installed not verified`. Tasks that need exact runtime version must explicitly check lockfile (`package-lock.json`, `Cargo.lock`, `Package.resolved`, `poetry.lock`, etc.). | `package.json` says React 18, node_modules may have 17. |
|
|
278
|
+
| **R5** | **README / CLAUDE.md / AGENTS.md content gets 1 line + source + last-modified date.** If declared description contradicts detected stack, append `⚠️ Conflict: declared "<X>" but stack indicates <Y> — verify with user`. | Self-description docs drift; stack manifests do not. |
|
|
279
|
+
| **R6** | **Banner footer is mandatory.** The `⚠️ Re-verify before mutating` line MUST appear verbatim at the bottom of every Context Block. | Drives downstream agent to treat block as starting context, not ground truth. |
|
|
280
|
+
| **R6.5** | **Probe failures are explicit, never silently empty.** Any failed action writes `PROBE FAILED: <reason>` for that field. Downstream agents seeing `PROBE FAILED` know to re-probe themselves; they would misread an empty field as "no problem". | An empty `uncommitted` field looks like a clean working tree. |
|
|
281
|
+
|
|
282
|
+
|
|
172
283
|
|
|
173
284
|
Classify the user's task into one or more categories:
|
|
174
285
|
|
|
@@ -274,7 +385,7 @@ checklist before generating the optimized prompt.
|
|
|
274
385
|
1. **不要直接改代码**。先用 systematic-debugging skill 定位根因
|
|
275
386
|
- 列出至少 3 个候选假设
|
|
276
387
|
- 对每个假设设计最小验证(添加日志 / 阅读相关代码)
|
|
277
|
-
2. /
|
|
388
|
+
2. /test-driven-development 写一个 failing 测试复现 bug(如果是 UI bug,写 e2e 用例)
|
|
278
389
|
3. 修复到 green
|
|
279
390
|
4. /verify 跨平台验证(如适用,跑 macOS + Windows)
|
|
280
391
|
5. /code-review
|
|
@@ -308,21 +419,33 @@ one level. So a MEDIUM task with 2 intents → HIGH → conductor defaults ON.
|
|
|
308
419
|
|
|
309
420
|
### Phase 3: ECC Component Matching
|
|
310
421
|
|
|
311
|
-
Map intent + scope +
|
|
422
|
+
Map intent + scope + **Phase 0.7 `Facts.stack`** to specific ECC components.
|
|
423
|
+
|
|
424
|
+
**HARD RULE (binding):** Component selection MUST be driven by `Project
|
|
425
|
+
Context Block → Facts → Stack` when present. When matching the By-Tech-Stack
|
|
426
|
+
table below, **skip rows that do not match** the detected stack — never list
|
|
427
|
+
React skills for a Swift project, never list Django skills for a Go project.
|
|
428
|
+
`Inferences` and `Unknown` fields are advisory only — they MAY surface a
|
|
429
|
+
"verify this assumption" note, but MUST NOT drive skill selection.
|
|
430
|
+
|
|
431
|
+
If `Facts.stack` is `unknown` (no manifest detected), fall back to the
|
|
432
|
+
language-agnostic intent-only recommendations and explicitly say so in
|
|
433
|
+
Section 5 rationale: "Stack unknown — recommendations are generic; user
|
|
434
|
+
should re-run after declaring stack."
|
|
312
435
|
|
|
313
436
|
#### By Intent Type
|
|
314
437
|
|
|
315
438
|
| Intent | Commands | Skills | Agents |
|
|
316
439
|
|--------|----------|--------|--------|
|
|
317
|
-
| New Feature | /plan, /
|
|
318
|
-
| **Bug Fix** | /
|
|
440
|
+
| New Feature | /plan, /test-driven-development, /code-review, /verify | tdd-workflow, verification-loop | planner, tdd-guide, code-reviewer |
|
|
441
|
+
| **Bug Fix** | /test-driven-development, /verify | **systematic-debugging (REQUIRED first)**, trace, analyze, debug, verification-loop | **debugger**, tdd-guide, code-reviewer |
|
|
319
442
|
| **Bug Fix (intermittent / 偶现)** | /verify | systematic-debugging, trace, **e2e (for flaky reproduction harness)** | debugger, tracer |
|
|
320
443
|
| **Bug Fix (cross-platform)** | /verify | systematic-debugging, **electron-driver** (if Electron) | debugger, code-reviewer |
|
|
321
444
|
| **Performance** | /verify | analyze, trace, verification-loop | architect, code-reviewer |
|
|
322
445
|
| Refactor | /refactor-clean, /code-review, /verify | verification-loop | refactor-cleaner, code-reviewer |
|
|
323
446
|
| Research | /plan | search-first, iterative-retrieval, external-context | — |
|
|
324
|
-
| **Research-then-Build** | /plan | external-context (research) → **conductor** (track delivery) → /
|
|
325
|
-
| Testing | /
|
|
447
|
+
| **Research-then-Build** | /plan | external-context (research) → **conductor** (track delivery) → /test-driven-development per phase | planner → executor |
|
|
448
|
+
| Testing | /test-driven-development, /e2e, /test-coverage | tdd-workflow, e2e-testing | tdd-guide, e2e-runner |
|
|
326
449
|
| Review | /code-review | security-review | code-reviewer, security-reviewer |
|
|
327
450
|
| Documentation | /update-docs, /update-codemaps | — | doc-updater, writer |
|
|
328
451
|
| Infrastructure | /plan, /verify | docker-patterns, deployment-patterns, database-migrations | architect |
|
|
@@ -545,9 +668,28 @@ If Phase 0 auto-detected the answer, state it instead of asking.
|
|
|
545
668
|
### Section 3: Optimized Prompt — Full Version
|
|
546
669
|
|
|
547
670
|
Present the complete optimized prompt inside a single fenced code block.
|
|
548
|
-
The prompt must be self-contained and ready to copy-paste.
|
|
549
|
-
|
|
550
|
-
|
|
671
|
+
The prompt must be self-contained and ready to copy-paste.
|
|
672
|
+
|
|
673
|
+
**MANDATORY STRUCTURE (binding):**
|
|
674
|
+
|
|
675
|
+
1. **First**, paste the Project Context Block from Phase 0.7 **verbatim**.
|
|
676
|
+
Do not summarize, do not paraphrase. The downstream agent needs the same
|
|
677
|
+
epistemic separation (Facts / Inferences / Unknown) the probe produced.
|
|
678
|
+
2. **Then**, a blank line.
|
|
679
|
+
3. **Then**, the task content, which MUST:
|
|
680
|
+
- Cite **at least 2 specific items from `Facts`** by file path, branch
|
|
681
|
+
name, manifest line, or commit hash. Generic language like "use the
|
|
682
|
+
existing auth code" is a FAIL — replace with "Read
|
|
683
|
+
`Sources/Auth/LoginView.swift` (uncommitted change, see Facts)".
|
|
684
|
+
- Phrase next-step references as `starting points to verify`, NOT as
|
|
685
|
+
imperatives. Good: "Read `LoginView.swift` first to see what's
|
|
686
|
+
already there." Bad: "Extend `LoginView.swift`."
|
|
687
|
+
- Never reference a code symbol that appeared only in `Inferences` or
|
|
688
|
+
`Unknown` (R2 — see Phase 0.7). Such references must downgrade to
|
|
689
|
+
"search `Grep` for X before assuming it exists."
|
|
690
|
+
|
|
691
|
+
**Other required content:**
|
|
692
|
+
- Clear task description (after Context Block)
|
|
551
693
|
- /command invocations at the right workflow stages
|
|
552
694
|
- Acceptance criteria
|
|
553
695
|
- Verification steps
|
|
@@ -556,21 +698,30 @@ The prompt must be self-contained and ready to copy-paste. Include:
|
|
|
556
698
|
For items that reference blueprint, write: "Use the blueprint skill to..."
|
|
557
699
|
(not `/blueprint`, since blueprint is a skill, not a command).
|
|
558
700
|
|
|
701
|
+
**Self-check gate (run before publishing Section 3 output):**
|
|
702
|
+
|
|
703
|
+
| Check | If FAIL |
|
|
704
|
+
|-------|---------|
|
|
705
|
+
| Does Section 3 start with the verbatim Project Context Block? | Regenerate; prepend the block |
|
|
706
|
+
| Does the task content cite ≥ 2 items from `Facts` by name/path? | Regenerate; replace generic references with specific Facts |
|
|
707
|
+
| Does any imperative reference a symbol that only appeared in `Inferences` or `Unknown`? | Regenerate; downgrade to "verify before extending" |
|
|
708
|
+
| Is the `⚠️ Re-verify before mutating` footer present in the block? | Regenerate; add the footer |
|
|
709
|
+
|
|
559
710
|
### Section 4: Optimized Prompt — Quick Version
|
|
560
711
|
|
|
561
712
|
A compact version for experienced ECC users. Vary by intent type:
|
|
562
713
|
|
|
563
714
|
| Intent | Quick Pattern |
|
|
564
715
|
|--------|--------------|
|
|
565
|
-
| New Feature | `/plan [feature]. /
|
|
566
|
-
| Bug Fix | `Use systematic-debugging for [bug] — list 3 hypotheses, verify each. Then /
|
|
716
|
+
| New Feature | `/plan [feature]. /test-driven-development to implement. /code-review. /verify.` |
|
|
717
|
+
| Bug Fix | `Use systematic-debugging for [bug] — list 3 hypotheses, verify each. Then /test-driven-development: write failing test, fix to green. /verify.` |
|
|
567
718
|
| Bug Fix (intermittent) | `Use trace skill for [intermittent bug] — competing hypotheses with evidence. Build flaky-repro harness in /e2e. Fix only after 100% repro. /verify.` |
|
|
568
719
|
| Bug Fix (cross-platform) | `Use systematic-debugging for [bug]. Repro on both [platform A] and [platform B]. Fix. /verify on both platforms.` |
|
|
569
720
|
| Performance | `Use analyze for [slow path] — measure baseline first (timing/profile). Identify top 3 hotspots. Fix one at a time, re-measure after each. /verify regression.` |
|
|
570
721
|
| Refactor | `/refactor-clean [scope]. /code-review. /verify.` |
|
|
571
722
|
| Research | `Use external-context skill for [topic]. /plan based on findings.` |
|
|
572
|
-
| Research-then-Build | `Use external-context to study [reference X]. Produce comparison report. Then use conductor skill to track delivery: spec → plan → /
|
|
573
|
-
| Testing | `/
|
|
723
|
+
| Research-then-Build | `Use external-context to study [reference X]. Produce comparison report. Then use conductor skill to track delivery: spec → plan → /test-driven-development per phase.` |
|
|
724
|
+
| Testing | `/test-driven-development [module]. /e2e for critical flows. /test-coverage.` |
|
|
574
725
|
| Review | `/code-review. Then use security-reviewer agent.` |
|
|
575
726
|
| Docs | `/update-docs. /update-codemaps.` |
|
|
576
727
|
| EPIC | `Use conductor skill (or blueprint) for "[objective]". Execute phases with /verify gates.` |
|
|
@@ -622,7 +773,7 @@ A compact version for experienced ECC users. Vary by intent type:
|
|
|
622
773
|
|
|
623
774
|
工作流:
|
|
624
775
|
1. /plan 先规划组件结构和认证流程,参考现有页面的模式
|
|
625
|
-
2. /
|
|
776
|
+
2. /test-driven-development 测试先行:编写登录表单的单元测试和认证流程的集成测试
|
|
626
777
|
3. 实现登录页面和认证逻辑
|
|
627
778
|
4. /code-review 审查实现
|
|
628
779
|
5. /verify 验证所有测试通过且页面正常渲染
|
|
@@ -670,7 +821,7 @@ Requirements:
|
|
|
670
821
|
|
|
671
822
|
Workflow:
|
|
672
823
|
1. /plan the endpoint structure, middleware chain, and validation logic
|
|
673
|
-
2. /
|
|
824
|
+
2. /test-driven-development — write table-driven tests for success, validation failure, auth failure, not-found
|
|
674
825
|
3. Implement following existing handler patterns
|
|
675
826
|
4. /go-review
|
|
676
827
|
5. /verify — run full test suite, confirm no regressions
|
|
@@ -722,7 +873,7 @@ Do not:
|
|
|
722
873
|
- H3: 分享接口幂等性设计阻止了重复请求
|
|
723
874
|
- H4: 前端短路 — 检测到"已分享"就不再触发请求
|
|
724
875
|
对每个假设:阅读 src/share/ 相关代码 + 添加临时日志验证
|
|
725
|
-
2. /
|
|
876
|
+
2. /test-driven-development 写 e2e 测试用例:分享 → 修改 → 再分享,断言链接或内容变化
|
|
726
877
|
3. 修复到 green
|
|
727
878
|
4. /verify:跑 e2e 测试 + macOS + Windows 各手测一次(Tauri 项目跨平台)
|
|
728
879
|
5. /code-review
|
|
@@ -736,7 +887,7 @@ Do not:
|
|
|
736
887
|
**Optimized Prompt (Quick):**
|
|
737
888
|
```
|
|
738
889
|
Use systematic-debugging for "分享 HTML/MD 后修改文件链接不更新" — list 3 hypotheses
|
|
739
|
-
(cache key, hash strategy, idempotent API), verify each. /
|
|
890
|
+
(cache key, hash strategy, idempotent API), verify each. /test-driven-development write failing e2e.
|
|
740
891
|
Fix to green. /verify on macOS + Windows.
|
|
741
892
|
```
|
|
742
893
|
|
|
@@ -772,6 +923,98 @@ Use git worktrees for parallel service extraction when dependencies allow.
|
|
|
772
923
|
Recommended: Opus 4.6 for blueprint planning, Sonnet 4.6 for phase execution.
|
|
773
924
|
```
|
|
774
925
|
|
|
926
|
+
### Example 5: Phase 0.7 — Project-Aware Recommendation (SwiftUI repo)
|
|
927
|
+
|
|
928
|
+
Demonstrates the v1.3.0 probe + 3-section Context Block + safe "starting
|
|
929
|
+
points to verify" output. Note how the optimized prompt avoids referencing
|
|
930
|
+
`AuthService` as if it exists (R2) and labels the branch signal as inference
|
|
931
|
+
only (R3).
|
|
932
|
+
|
|
933
|
+
**User input (vague Chinese):**
|
|
934
|
+
```
|
|
935
|
+
帮我加个登录功能
|
|
936
|
+
```
|
|
937
|
+
|
|
938
|
+
**Phase 0.7 probe output (5 tool calls):**
|
|
939
|
+
- Action 1: `git rev-parse --is-inside-work-tree` → `true`
|
|
940
|
+
- Action 2: `Glob` finds `Package.swift` at repo root
|
|
941
|
+
- Action 3: `Read Package.swift` lines 1-50 → `swift-tools-version: 6.0`, platform `iOS .v18`
|
|
942
|
+
- Action 4: `git` combined → branch `feat/auth` (2 ahead of `main`), uncommitted `M Sources/Auth/LoginView.swift`, recent commits include `a1b2c3 add AuthService stub`, `d4e5f6 wire keychain`
|
|
943
|
+
- Action 5: `CLAUDE.md` exists, line 1 reads "# AcmeApp iOS companion (SwiftUI)"
|
|
944
|
+
|
|
945
|
+
**Optimized Prompt (Full):**
|
|
946
|
+
|
|
947
|
+
````
|
|
948
|
+
## 🔍 Project Context (probed 2026-05-27 14:30 — starting point, NOT ground truth)
|
|
949
|
+
|
|
950
|
+
### Facts (directly observed in probe)
|
|
951
|
+
- Stack: Swift 6.0 + SwiftUI, target iOS 18 ← from `Package.swift:5` (declared, installed toolchain not verified)
|
|
952
|
+
- Repo: AcmeApp @ branch `feat/auth` (2 commits ahead of `main`)
|
|
953
|
+
- Uncommitted: M `Sources/Auth/LoginView.swift`
|
|
954
|
+
- Recent commit subjects (commit messages only — NOT code verification):
|
|
955
|
+
- `a1b2c3` "add AuthService stub"
|
|
956
|
+
- `d4e5f6` "wire keychain"
|
|
957
|
+
- `9f8e7d` "scaffold Auth module"
|
|
958
|
+
- Recent diff scope (`git diff --stat HEAD~1`): `Sources/Auth/LoginView.swift`: +45 -12
|
|
959
|
+
- Project self-description (`CLAUDE.md:1`, last modified 2026-04-30): "AcmeApp iOS companion (SwiftUI)"
|
|
960
|
+
|
|
961
|
+
### Inferences (UNVERIFIED — confirm before acting)
|
|
962
|
+
- Likely SwiftUI auth feature work in progress (branch name + recent commit subjects)
|
|
963
|
+
- A type named "AuthService" may exist (commit subject reference) — NOT verified by reading any file
|
|
964
|
+
|
|
965
|
+
### Unknown / Not Probed
|
|
966
|
+
- Whether `AuthService` actually exists as a Swift type — `Grep "AuthService" Sources/` before referencing
|
|
967
|
+
- Installed Swift toolchain version (only `Package.swift` declared version was read)
|
|
968
|
+
- Whether `LoginView.swift` is the intended host for login UI or just a scratch file
|
|
969
|
+
|
|
970
|
+
⚠️ Re-verify before mutating: run `git status`, `Read` actual files. This block
|
|
971
|
+
is probe-time context, not authoritative. If observation contradicts this
|
|
972
|
+
block, trust observation and ignore this block.
|
|
973
|
+
|
|
974
|
+
---
|
|
975
|
+
|
|
976
|
+
**Task**: Implement login functionality for AcmeApp.
|
|
977
|
+
|
|
978
|
+
**Required skills**: `swiftui-pro` (review/idiom), `test-driven-development` (write failing test first).
|
|
979
|
+
|
|
980
|
+
**Starting points to verify (NOT commands to obey blindly):**
|
|
981
|
+
|
|
982
|
+
1. `Sources/Auth/LoginView.swift` already has uncommitted changes (+45 -12 vs HEAD~1). **Read it first** to see what's already drafted before adding new code.
|
|
983
|
+
2. Commit log mentions "AuthService stub" — **before** importing or extending it, run `Grep "AuthService" Sources/` to confirm the type exists and is at a usable state. Treat the name as a lead, not a fact.
|
|
984
|
+
3. Branch is `feat/auth` with 2 commits ahead of `main` — verify this is the intended working branch. If unclear, ask the user.
|
|
985
|
+
4. `CLAUDE.md` declares SwiftUI iOS — use SwiftUI APIs (`@State`, `@Observable`, `NavigationStack`) and `iOS 18` features. Confirm by reading `Package.swift` platforms array before using iOS-26-only APIs.
|
|
986
|
+
|
|
987
|
+
**Workflow:**
|
|
988
|
+
1. `Read Sources/Auth/LoginView.swift` → understand existing scaffold.
|
|
989
|
+
2. `Grep` for `AuthService`, `Keychain` patterns → ground the implementation in what exists.
|
|
990
|
+
3. Use `test-driven-development`: write failing test for the login happy path first.
|
|
991
|
+
4. Implement minimum code to pass; let `swiftui-pro` review the View structure.
|
|
992
|
+
5. `/verify` — build, run tests, manually exercise the simulator flow.
|
|
993
|
+
|
|
994
|
+
**Acceptance criteria:**
|
|
995
|
+
- Login screen accepts email + password input, validates non-empty
|
|
996
|
+
- Successful auth navigates to main app screen
|
|
997
|
+
- Failed auth shows inline error
|
|
998
|
+
- Credentials persist via Keychain (extend existing wiring from `d4e5f6`, do NOT re-implement)
|
|
999
|
+
- Unit tests cover validation + success + failure paths
|
|
1000
|
+
|
|
1001
|
+
**Scope boundaries:**
|
|
1002
|
+
- Do NOT redesign `AuthService` interface — extend it if it exists; flag for user if it doesn't
|
|
1003
|
+
- Do NOT switch branch — work continues on `feat/auth`
|
|
1004
|
+
- Do NOT introduce a new auth library (no Firebase / Auth0 / etc.) without asking
|
|
1005
|
+
````
|
|
1006
|
+
|
|
1007
|
+
**Why this output is safer than the v1.2.x style:**
|
|
1008
|
+
|
|
1009
|
+
| v1.2.x risk | v1.3.0 mitigation |
|
|
1010
|
+
|-------------|-------------------|
|
|
1011
|
+
| Would have said "Use `swiftui-pro` to add login" without naming files | Cites `LoginView.swift`, `Package.swift:5`, branch `feat/auth`, commit `d4e5f6` (R1, ≥ 2 Facts cited) |
|
|
1012
|
+
| Might have written "extend `AuthService`" as imperative | Downgraded to "Grep `AuthService` first — treat the name as a lead, not a fact" (R2) |
|
|
1013
|
+
| Would have inferred "auth feature" from branch name | Branch name in `Inferences`, intent confirmed via user prompt only (R3) |
|
|
1014
|
+
| Would have said "Swift 6.0" as if it were installed | "declared, installed toolchain not verified" (R4) |
|
|
1015
|
+
| Would have implied CLAUDE.md content was current truth | Cited with last-modified date (R5) |
|
|
1016
|
+
| No instruction to re-verify | `⚠️ Re-verify before mutating` footer (R6) |
|
|
1017
|
+
|
|
775
1018
|
---
|
|
776
1019
|
|
|
777
1020
|
## Related Components
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "ECC curation. NOTE: governance.json inlines this same allowlist and takes precedence at install time; this file is the source it is kept in sync with (a test asserts they match) and the fallback the per-source mechanism uses for sources NOT inlined in governance.json. Apply with `omc-manage plan apply ecc` (auto-discovered as the default selection file); names are validated against the full synced ECC universe. Full ingestion remains in .upstream/ecc/; only these names install to ~/.claude/.",
|
|
3
|
+
"skills": [
|
|
4
|
+
"workspace-surface-audit",
|
|
5
|
+
"agent-eval",
|
|
6
|
+
"agent-harness-construction",
|
|
7
|
+
"agent-introspection-debugging",
|
|
8
|
+
"agent-sort",
|
|
9
|
+
"agentic-engineering",
|
|
10
|
+
"ai-first-engineering",
|
|
11
|
+
"ai-regression-testing",
|
|
12
|
+
"autonomous-agent-harness",
|
|
13
|
+
"autonomous-loops",
|
|
14
|
+
"continuous-agent-loop",
|
|
15
|
+
"eval-harness",
|
|
16
|
+
"gan-style-harness",
|
|
17
|
+
"iterative-retrieval",
|
|
18
|
+
"mcp-server-patterns",
|
|
19
|
+
"santa-method",
|
|
20
|
+
"skill-comply",
|
|
21
|
+
"skill-stocktake",
|
|
22
|
+
"strategic-compact",
|
|
23
|
+
"team-builder",
|
|
24
|
+
"token-budget-advisor",
|
|
25
|
+
"verification-loop",
|
|
26
|
+
"council",
|
|
27
|
+
"cost-aware-llm-pipeline",
|
|
28
|
+
"prompt-optimizer",
|
|
29
|
+
"context-budget",
|
|
30
|
+
"code-tour",
|
|
31
|
+
"codebase-onboarding",
|
|
32
|
+
"git-workflow",
|
|
33
|
+
"github-ops",
|
|
34
|
+
"regex-vs-llm-structured-text"
|
|
35
|
+
],
|
|
36
|
+
"agents": [
|
|
37
|
+
"harness-optimizer",
|
|
38
|
+
"opensource-forker",
|
|
39
|
+
"opensource-sanitizer",
|
|
40
|
+
"opensource-packager",
|
|
41
|
+
"silent-failure-hunter",
|
|
42
|
+
"pr-test-analyzer",
|
|
43
|
+
"doc-updater",
|
|
44
|
+
"code-explorer",
|
|
45
|
+
"conversation-analyzer",
|
|
46
|
+
"comment-analyzer",
|
|
47
|
+
"loop-operator",
|
|
48
|
+
"type-design-analyzer",
|
|
49
|
+
"performance-optimizer",
|
|
50
|
+
"refactor-cleaner",
|
|
51
|
+
"chief-of-staff",
|
|
52
|
+
"docs-lookup",
|
|
53
|
+
"swift-reviewer",
|
|
54
|
+
"swift-build-resolver"
|
|
55
|
+
],
|
|
56
|
+
"commands": [
|
|
57
|
+
"harness-audit",
|
|
58
|
+
"checkpoint",
|
|
59
|
+
"evolve",
|
|
60
|
+
"quality-gate",
|
|
61
|
+
"update-codemaps",
|
|
62
|
+
"update-docs",
|
|
63
|
+
"prp-prd",
|
|
64
|
+
"prp-plan",
|
|
65
|
+
"prp-implement",
|
|
66
|
+
"prp-pr",
|
|
67
|
+
"prp-commit",
|
|
68
|
+
"model-route",
|
|
69
|
+
"feature-dev",
|
|
70
|
+
"resume-session",
|
|
71
|
+
"save-session",
|
|
72
|
+
"sessions",
|
|
73
|
+
"aside",
|
|
74
|
+
"prune",
|
|
75
|
+
"hookify",
|
|
76
|
+
"hookify-list",
|
|
77
|
+
"hookify-configure",
|
|
78
|
+
"hookify-help"
|
|
79
|
+
]
|
|
80
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Unified governance manifest — the single authoritative source for cross-source policy: per-source priority, per-source install allowlist, content patches, and conflict resolution. Authority order for allowlist: explicit config (plan apply) > this file's inline allowlist > .omc-curation/<name>-selection.json. Patches (sources.<name>.patches['<type>/<artifact>']) edit the winning artifact's content at install: frontmatter overrides, replace (find/with), prepend, append. Priority and conflict here override legacy templates/merge-config.json.",
|
|
3
|
+
"sources": {
|
|
4
|
+
"local": {
|
|
5
|
+
"priority": 1
|
|
6
|
+
},
|
|
7
|
+
"oh-my-claudecode": {
|
|
8
|
+
"priority": 2
|
|
9
|
+
},
|
|
10
|
+
"superpowers": {
|
|
11
|
+
"priority": 3
|
|
12
|
+
},
|
|
13
|
+
"ecc": {
|
|
14
|
+
"priority": 4,
|
|
15
|
+
"allowlist": {
|
|
16
|
+
"skills": [
|
|
17
|
+
"workspace-surface-audit",
|
|
18
|
+
"agent-eval",
|
|
19
|
+
"agent-harness-construction",
|
|
20
|
+
"agent-introspection-debugging",
|
|
21
|
+
"agent-sort",
|
|
22
|
+
"agentic-engineering",
|
|
23
|
+
"ai-first-engineering",
|
|
24
|
+
"ai-regression-testing",
|
|
25
|
+
"autonomous-agent-harness",
|
|
26
|
+
"autonomous-loops",
|
|
27
|
+
"continuous-agent-loop",
|
|
28
|
+
"eval-harness",
|
|
29
|
+
"gan-style-harness",
|
|
30
|
+
"iterative-retrieval",
|
|
31
|
+
"mcp-server-patterns",
|
|
32
|
+
"santa-method",
|
|
33
|
+
"skill-comply",
|
|
34
|
+
"skill-stocktake",
|
|
35
|
+
"strategic-compact",
|
|
36
|
+
"team-builder",
|
|
37
|
+
"token-budget-advisor",
|
|
38
|
+
"verification-loop",
|
|
39
|
+
"council",
|
|
40
|
+
"cost-aware-llm-pipeline",
|
|
41
|
+
"prompt-optimizer",
|
|
42
|
+
"context-budget",
|
|
43
|
+
"code-tour",
|
|
44
|
+
"codebase-onboarding",
|
|
45
|
+
"git-workflow",
|
|
46
|
+
"github-ops",
|
|
47
|
+
"regex-vs-llm-structured-text"
|
|
48
|
+
],
|
|
49
|
+
"agents": [
|
|
50
|
+
"harness-optimizer",
|
|
51
|
+
"opensource-forker",
|
|
52
|
+
"opensource-sanitizer",
|
|
53
|
+
"opensource-packager",
|
|
54
|
+
"silent-failure-hunter",
|
|
55
|
+
"pr-test-analyzer",
|
|
56
|
+
"doc-updater",
|
|
57
|
+
"code-explorer",
|
|
58
|
+
"conversation-analyzer",
|
|
59
|
+
"comment-analyzer",
|
|
60
|
+
"loop-operator",
|
|
61
|
+
"type-design-analyzer",
|
|
62
|
+
"performance-optimizer",
|
|
63
|
+
"refactor-cleaner",
|
|
64
|
+
"chief-of-staff",
|
|
65
|
+
"docs-lookup",
|
|
66
|
+
"swift-reviewer",
|
|
67
|
+
"swift-build-resolver"
|
|
68
|
+
],
|
|
69
|
+
"commands": [
|
|
70
|
+
"harness-audit",
|
|
71
|
+
"checkpoint",
|
|
72
|
+
"evolve",
|
|
73
|
+
"quality-gate",
|
|
74
|
+
"update-codemaps",
|
|
75
|
+
"update-docs",
|
|
76
|
+
"prp-prd",
|
|
77
|
+
"prp-plan",
|
|
78
|
+
"prp-implement",
|
|
79
|
+
"prp-pr",
|
|
80
|
+
"prp-commit",
|
|
81
|
+
"model-route",
|
|
82
|
+
"feature-dev",
|
|
83
|
+
"resume-session",
|
|
84
|
+
"save-session",
|
|
85
|
+
"sessions",
|
|
86
|
+
"aside",
|
|
87
|
+
"prune",
|
|
88
|
+
"hookify",
|
|
89
|
+
"hookify-list",
|
|
90
|
+
"hookify-configure",
|
|
91
|
+
"hookify-help"
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"impeccable": {
|
|
96
|
+
"priority": 5
|
|
97
|
+
},
|
|
98
|
+
"anthropic-skills": {
|
|
99
|
+
"priority": 99
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"conflict": {
|
|
103
|
+
"preferences": {},
|
|
104
|
+
"exclude": {
|
|
105
|
+
"skills": [
|
|
106
|
+
"ask",
|
|
107
|
+
"ccg",
|
|
108
|
+
"multi-model-research",
|
|
109
|
+
"test-gen",
|
|
110
|
+
"release",
|
|
111
|
+
"omc-teams",
|
|
112
|
+
"using-superpowers"
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Pinned upstream commits for reproducible `source sync --frozen`. Update with `omc-manage source lock`.",
|
|
3
|
+
"sources": {
|
|
4
|
+
"superpowers": {
|
|
5
|
+
"commit": "6fd4507659784c351abbd2bc264c7162cfd386dc",
|
|
6
|
+
"ref": "main",
|
|
7
|
+
"lockedAt": "2026-06-05T08:06:28.114Z"
|
|
8
|
+
},
|
|
9
|
+
"anthropic-skills": {
|
|
10
|
+
"commit": "da20c92503b2e8ff1cf28ca81a0df4673debdbf7",
|
|
11
|
+
"ref": "main",
|
|
12
|
+
"lockedAt": "2026-06-05T08:06:28.114Z"
|
|
13
|
+
},
|
|
14
|
+
"oh-my-claudecode": {
|
|
15
|
+
"commit": "3e945671dcf3ed1c1bcc422862815f92c1999143",
|
|
16
|
+
"ref": "main",
|
|
17
|
+
"lockedAt": "2026-06-05T08:06:28.113Z"
|
|
18
|
+
},
|
|
19
|
+
"ecc": {
|
|
20
|
+
"commit": "bc8e12bb80c904a5a9864797ef1fd1212aa82f3d",
|
|
21
|
+
"ref": "main",
|
|
22
|
+
"lockedAt": "2026-06-05T08:06:28.114Z"
|
|
23
|
+
},
|
|
24
|
+
"impeccable": {
|
|
25
|
+
"commit": "fff712ca98e168949efcf142e7360997d6323d6c",
|
|
26
|
+
"ref": "main",
|
|
27
|
+
"lockedAt": "2026-06-15T00:00:00.000Z"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|