@webpresso/plugin-claude 0.0.4
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/.claude-plugin/marketplace.json +21 -0
- package/.claude-plugin/plugin.json +20 -0
- package/LICENSE +104 -0
- package/bin/wp +60 -0
- package/commands/audit.md +29 -0
- package/commands/blueprint.md +27 -0
- package/commands/qa.md +5 -0
- package/commands/test.md +5 -0
- package/package.json +41 -0
- package/plugin-skill-ownership.json +99 -0
- package/skills/ai-deslop/SKILL.md +91 -0
- package/skills/autopilot/SKILL.md +77 -0
- package/skills/autoresearch/SKILL.md +49 -0
- package/skills/best-practice-research/SKILL.md +89 -0
- package/skills/browse/SKILL.md +25 -0
- package/skills/claude/SKILL.md +186 -0
- package/skills/codex/SKILL.md +142 -0
- package/skills/deep-interview/LICENSE.txt +28 -0
- package/skills/deep-interview/SKILL.md +269 -0
- package/skills/deep-research/SKILL.md +258 -0
- package/skills/delivery-program/SKILL.md +57 -0
- package/skills/design-review/SKILL.md +26 -0
- package/skills/devex-review/SKILL.md +28 -0
- package/skills/fix/SKILL.md +174 -0
- package/skills/grok/SKILL.md +32 -0
- package/skills/hooks-doctor/SKILL.md +78 -0
- package/skills/investigate/SKILL.md +72 -0
- package/skills/lore-protocol/SKILL.md +84 -0
- package/skills/opencode-go/SKILL.md +97 -0
- package/skills/plan-ceo-review/SKILL.md +27 -0
- package/skills/plan-design-review/SKILL.md +27 -0
- package/skills/plan-devex-review/SKILL.md +19 -0
- package/skills/plan-eng-review/SKILL.md +24 -0
- package/skills/plan-refine/SKILL.md +50 -0
- package/skills/plan-refine/references/full-methodology.md +645 -0
- package/skills/ralplan/SKILL.md +50 -0
- package/skills/team/SKILL.md +77 -0
- package/skills/tech-debt/SKILL.md +79 -0
- package/skills/testing-philosophy/SKILL.md +53 -0
- package/skills/testing-philosophy/references/full-testing-philosophy.md +523 -0
- package/skills/tph/SKILL.md +35 -0
- package/skills/ultragoal/SKILL.md +179 -0
- package/skills/verify/SKILL.md +283 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: best-practice-research
|
|
3
|
+
description: "Official/upstream best-practice research wrapper with bounded evidence and dated citations."
|
|
4
|
+
argument-hint: "<technology|decision|practice question>"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Best-Practice Research
|
|
8
|
+
|
|
9
|
+
Use this skill when a task depends on current external best practices, version-aware guidance, standards, official recommendations, or upstream behavior. This is a workflow wrapper: it routes evidence gathering and synthesis; it is not a new research authority and it does not replace the `deep-research` skill.
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Produce a cited, reusable best-practice answer or handoff that separates current external evidence from repo-local facts and dependency-selection decisions.
|
|
14
|
+
|
|
15
|
+
## Activate When
|
|
16
|
+
|
|
17
|
+
- The user asks for best practices, recommended approach, current guidance, official recommendations, standards, or version-aware external behavior.
|
|
18
|
+
- `$ralplan`, `$team`, or another workflow needs current external evidence before planning or execution can be correct.
|
|
19
|
+
- The task involves an already chosen technology and needs authoritative usage guidance, migration notes, API behavior, lifecycle rules, or current safety guidance.
|
|
20
|
+
|
|
21
|
+
## Do Not Activate When
|
|
22
|
+
|
|
23
|
+
- The answer is fully repo-local; use `explore` for codebase facts.
|
|
24
|
+
- The main question is whether to adopt, replace, upgrade, or compare dependencies — that decision is out of scope; inform it with evidence but return the choice to the caller.
|
|
25
|
+
- The user only needs implementation against already-grounded requirements; hand off to the caller's execution workflow (`$team` or `$ralplan`) as appropriate.
|
|
26
|
+
- The task can be answered from stable local project conventions without current external lookup.
|
|
27
|
+
|
|
28
|
+
## Specialist Routing
|
|
29
|
+
|
|
30
|
+
1. Use `explore` first for brownfield facts: current code usage, local constraints, versions, config, and integration points.
|
|
31
|
+
2. Gather official/upstream docs, release notes, standards, migration guides, and source-backed evidence yourself with web search and doc fetches; escalate to the `deep-research` skill for exhaustive multi-source research on an already chosen technology.
|
|
32
|
+
3. Adoption / upgrade / replacement / comparison decisions are out of scope: surface the evidence, but return the decision to the caller.
|
|
33
|
+
4. Return to the caller with explicit evidence, uncertainty, and any implementation handoff constraints.
|
|
34
|
+
|
|
35
|
+
## Source-Quality Rules
|
|
36
|
+
|
|
37
|
+
- Prefer official documentation, upstream source, release notes, changelogs, standards, and maintainer guidance.
|
|
38
|
+
- Include source URLs for material claims.
|
|
39
|
+
- State date/version context for current best-practice claims.
|
|
40
|
+
- Label third-party summaries as supplemental; do not use them before official/upstream sources.
|
|
41
|
+
- Flag stale, conflicting, undocumented, or version-mismatched evidence.
|
|
42
|
+
- Do not over-fetch: gather the smallest evidence set that can support the decision.
|
|
43
|
+
|
|
44
|
+
## Workflow
|
|
45
|
+
|
|
46
|
+
1. Classify the question: conceptual best practice, implementation guidance, migration/version guidance, standards/compliance guidance, or mixed local + external guidance.
|
|
47
|
+
2. Gather repo-local facts with `explore` when local usage or constraints affect the answer.
|
|
48
|
+
3. Gather external evidence with web search and official-doc fetches (escalate to the `deep-research` skill for depth) when current or version-aware practice affects correctness.
|
|
49
|
+
4. Synthesize a concise answer with source quality, version/date context, caveats, and an implementation or planning handoff.
|
|
50
|
+
5. Stop when the answer is grounded enough for the caller; otherwise report the exact blocker or specialist handoff needed.
|
|
51
|
+
|
|
52
|
+
## Output Contract
|
|
53
|
+
|
|
54
|
+
```md
|
|
55
|
+
## Best-Practice Research: <question>
|
|
56
|
+
|
|
57
|
+
### Direct Recommendation
|
|
58
|
+
|
|
59
|
+
<actionable guidance or decision support>
|
|
60
|
+
|
|
61
|
+
### Evidence Used
|
|
62
|
+
|
|
63
|
+
- Official/upstream: <source URL> — <what it establishes>
|
|
64
|
+
- Supplemental, if any: <source URL> — <why it is secondary>
|
|
65
|
+
|
|
66
|
+
### Version / Date Context
|
|
67
|
+
|
|
68
|
+
<versions, dates, release channels, or unknowns>
|
|
69
|
+
|
|
70
|
+
### Repo-Local Context
|
|
71
|
+
|
|
72
|
+
<facts from explore, or "not needed">
|
|
73
|
+
|
|
74
|
+
### Boundaries / Non-goals
|
|
75
|
+
|
|
76
|
+
<what this research does not decide>
|
|
77
|
+
|
|
78
|
+
### Handoff
|
|
79
|
+
|
|
80
|
+
<planning/execution/test implications>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Stop Rules
|
|
84
|
+
|
|
85
|
+
- Stop after a source-backed recommendation is reusable by the caller.
|
|
86
|
+
- Stop and route upward if the task becomes dependency comparison, broad architecture, or implementation.
|
|
87
|
+
- Do not continue researching when remaining work would only polish wording rather than change the recommendation.
|
|
88
|
+
|
|
89
|
+
Task: {{ARGUMENTS}}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: browse
|
|
3
|
+
description: "Browser/page inspection via Webpresso Playwright: inspect DOM, console, network basics, screenshots, and findings."
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
- Bash
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Browse
|
|
13
|
+
|
|
14
|
+
Use `wp browser doctor` first if browser availability is unknown; if it reports a missing browser, run `wp browser ensure chromium`. Prefer repo-local preview or dev-server URLs; if none are discoverable, ask for a URL.
|
|
15
|
+
|
|
16
|
+
## Read-only inspection
|
|
17
|
+
|
|
18
|
+
The `allowed-tools` frontmatter is an audited disclosure for supported hosts;
|
|
19
|
+
pretool-guard remains the enforced mutation backstop when a host does not prove
|
|
20
|
+
skill-frontmatter enforcement.
|
|
21
|
+
|
|
22
|
+
1. Identify the URL and whether headed or headless mode is needed.
|
|
23
|
+
2. Use `wp browser open <url> --json` for a lightweight smoke snapshot, or a project Playwright test for deeper flows.
|
|
24
|
+
3. Report URL, title, status evidence, console/page errors when available, and any screenshots/artifacts.
|
|
25
|
+
4. Do not mutate app data unless the user explicitly asks for a mutating browser flow.
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: claude
|
|
3
|
+
description: "Claude CLI outside-voice wrapper for review, adversarial challenge, or consultation from non-Claude hosts."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Claude outside voice
|
|
8
|
+
|
|
9
|
+
Use when a non-Claude host needs Claude to review a diff, challenge a plan, or answer a focused repo question. Keep it bounded/read-only unless asked otherwise, and report Claude output as advice, not verified fact.
|
|
10
|
+
|
|
11
|
+
## Single-shot budget (anti-stampede)
|
|
12
|
+
|
|
13
|
+
- Default: **one** review invocation per request.
|
|
14
|
+
- Do **not** spawn parallel Claude + Codex + Grok + OpenCode reviews unless the user set `review_budget`/`N` > 1.
|
|
15
|
+
- Prefer MCP `wp_review_run`, then the `wp review run` CLI fallback, over hand-rolled multi-agent loops.
|
|
16
|
+
- Bounded payload only (see below). Split large diffs across sequential calls, never unbounded whole-PR dumps.
|
|
17
|
+
|
|
18
|
+
## Primary path: the `wp_review_run` MCP tool
|
|
19
|
+
|
|
20
|
+
When the webpresso MCP server is available, call `wp_review_run` exactly once
|
|
21
|
+
instead of any bash block below. It is the same `wp review run` typed runtime,
|
|
22
|
+
called in-process, and takes a `prompt` string without `--prompt-file` bookkeeping.
|
|
23
|
+
Use the default review stage.
|
|
24
|
+
|
|
25
|
+
```jsonc
|
|
26
|
+
// wp_review_run MCP tool call
|
|
27
|
+
{
|
|
28
|
+
"prompt": "<diff summary + what to look for>",
|
|
29
|
+
"provider": "claude",
|
|
30
|
+
// model, effort, artifactRoot, idleSeconds, and stage are optional and
|
|
31
|
+
// default the same way the `wp review run` CLI does. The default stage is
|
|
32
|
+
// review.
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Use the requested provider for this invocation. Do not retry, use provider
|
|
37
|
+
fallback, or rotate accounts within the invocation. Never shell into a
|
|
38
|
+
provider CLI when MCP is available; that bypasses typed artifact capture under
|
|
39
|
+
`.webpresso/reviews`.
|
|
40
|
+
|
|
41
|
+
For long-running reviews, prefer the async MCP path: call `wp_review_run` with
|
|
42
|
+
`"provider": "claude"` and `"background": true`, then poll `wp_review_wait`
|
|
43
|
+
with the returned `runId`. Do not solve MCP transport limits by inflating
|
|
44
|
+
synchronous review timeouts.
|
|
45
|
+
|
|
46
|
+
The bash blocks in this skill (below) are the **MCP-unavailable fallback only**
|
|
47
|
+
— use them when the webpresso MCP server itself is not reachable in the current
|
|
48
|
+
host, not as a provider-fallback mechanism.
|
|
49
|
+
|
|
50
|
+
## MCP-unavailable fallback: auth check
|
|
51
|
+
|
|
52
|
+
Use local Claude CLI login directly; do not route through Anthropic API-key env vars.
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
AUTH_STATUS_FILE=$(mktemp -t wp-claude-auth.XXXXXX)
|
|
56
|
+
trap 'rm -f "$AUTH_STATUS_FILE"' EXIT
|
|
57
|
+
if ! claude auth status --json >"$AUTH_STATUS_FILE" 2>/dev/null; then
|
|
58
|
+
if ! claude auth status >"$AUTH_STATUS_FILE" 2>/dev/null; then
|
|
59
|
+
echo "CLAUDE_AUTH=missing: run claude auth login with the intended Claude Max account"
|
|
60
|
+
exit 1
|
|
61
|
+
fi
|
|
62
|
+
fi
|
|
63
|
+
if grep -E '"(authenticated|loggedIn|success)"[[:space:]]*:[[:space:]]*true' "$AUTH_STATUS_FILE" >/dev/null; then
|
|
64
|
+
echo "CLAUDE_AUTH=cli-login"
|
|
65
|
+
else
|
|
66
|
+
echo "CLAUDE_AUTH=missing: claude auth status did not report a recognized Claude CLI login"
|
|
67
|
+
exit 1
|
|
68
|
+
fi
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## MCP-unavailable fallback: portable prompt file
|
|
72
|
+
|
|
73
|
+
Use a suffix-free `mktemp -t` pattern so macOS and Linux both work:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
PROMPT_FILE=$(mktemp -t wp-claude-review.XXXXXX)
|
|
77
|
+
trap 'rm -f "$PROMPT_FILE"' EXIT
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Dashboard helper relation
|
|
81
|
+
|
|
82
|
+
When this skill runs under `wp dash`, record the outside-voice lifecycle with
|
|
83
|
+
`wp dash-helper-start --provider claude --role reviewer` and
|
|
84
|
+
`wp dash-helper-complete --provider claude --role reviewer --outcome <completed|failed>`
|
|
85
|
+
using the actual terminal outcome and artifact path.
|
|
86
|
+
Outside the dashboard, skip helper emission. Claude's managed native subagent
|
|
87
|
+
lifecycle is not parent-linked; this unsupported coverage must stay explicit,
|
|
88
|
+
and completion must never be inferred from transcript text or timing.
|
|
89
|
+
|
|
90
|
+
## Modes
|
|
91
|
+
|
|
92
|
+
### Review
|
|
93
|
+
|
|
94
|
+
Use single-file / single-question first for any non-trivial diff. Do not send a whole PR unless it already fits within the bounded payload below.
|
|
95
|
+
|
|
96
|
+
**Model policy:** leave `CLAUDE_REVIEW_MODEL` unset unless the user requested a
|
|
97
|
+
specific Claude model (for example `fable` for a lighter advisory pass). When it
|
|
98
|
+
is unset, `wp review run` lets the Claude CLI choose its own default by omitting
|
|
99
|
+
`--model`. The blueprint promotion/completion approval gate
|
|
100
|
+
(`catalog/agent/rules/pre-implementation.md`) validates reviewer identity
|
|
101
|
+
(`claude`/`codex`/`grok`/an OpenCode-Go model), not the reviewed model string, so do not
|
|
102
|
+
claim the gate rejects a different Claude model.
|
|
103
|
+
|
|
104
|
+
#### Bounded prompt payload
|
|
105
|
+
|
|
106
|
+
Always include:
|
|
107
|
+
|
|
108
|
+
- current branch and base branch
|
|
109
|
+
- `git diff --stat`
|
|
110
|
+
- changed file list
|
|
111
|
+
- one targeted file diff or one narrow snippet/hunk only, capped to a fixed size
|
|
112
|
+
|
|
113
|
+
Prefer ~12 KB or ~200 lines per call. Split large reviews instead of raising the cap.
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
BASE_BRANCH=${BASE_BRANCH:-origin/main}
|
|
117
|
+
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
118
|
+
TARGET_FILE=${TARGET_FILE:?set TARGET_FILE to one changed file}
|
|
119
|
+
|
|
120
|
+
{
|
|
121
|
+
printf 'Outside review mode: focused diff review\n'
|
|
122
|
+
printf 'Base branch: %s\nCurrent branch: %s\n\n' "$BASE_BRANCH" "$CURRENT_BRANCH"
|
|
123
|
+
printf 'git diff --stat %s...HEAD\n' "$BASE_BRANCH"
|
|
124
|
+
git diff --stat "$BASE_BRANCH"...HEAD
|
|
125
|
+
printf '\nChanged files:\n'
|
|
126
|
+
git diff --name-only "$BASE_BRANCH"...HEAD
|
|
127
|
+
printf '\nTarget file: %s\n' "$TARGET_FILE"
|
|
128
|
+
printf 'Bounded target diff (max 12000 bytes):\n'
|
|
129
|
+
git diff --unified=3 "$BASE_BRANCH"...HEAD -- "$TARGET_FILE" | \
|
|
130
|
+
head -c 12000
|
|
131
|
+
printf '\n\nQuestion: Identify the highest-signal correctness, security, data-loss, or maintainability risk in %s. Quote only the smallest relevant excerpt. If context is insufficient, answer INSUFFICIENT_CONTEXT.\n' "$TARGET_FILE"
|
|
132
|
+
} >"$PROMPT_FILE"
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
#### Progress-aware review runtime
|
|
136
|
+
|
|
137
|
+
Run one review through the typed `wp review run` owner. Skills must not embed
|
|
138
|
+
subprocess supervision. The runtime consumes Claude's streaming JSON events,
|
|
139
|
+
advances its idle clock only on monotonic semantic progress, and has no total
|
|
140
|
+
wall-clock cutoff.
|
|
141
|
+
|
|
142
|
+
The artifact root contains private runtime diagnostics, not a recorded
|
|
143
|
+
transcript or committable approval evidence. Direct `wp review run` output is
|
|
144
|
+
advisory. `wp_review_gate` is plan-only exact-version draft approval/auto-promotion;
|
|
145
|
+
implementation/phase reviews use advisory `wp_review_run` and never mutate
|
|
146
|
+
blueprint approval state. CLI delivery gates are MCP-unavailable compatibility only.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
CLAUDE_REVIEW_MODEL=${CLAUDE_REVIEW_MODEL:-}
|
|
150
|
+
CLAUDE_MODEL_ARGS=()
|
|
151
|
+
if [ -n "$CLAUDE_REVIEW_MODEL" ]; then
|
|
152
|
+
CLAUDE_MODEL_ARGS=(--model "$CLAUDE_REVIEW_MODEL")
|
|
153
|
+
fi
|
|
154
|
+
CLAUDE_REVIEW_EFFORT=${CLAUDE_REVIEW_EFFORT:-medium}
|
|
155
|
+
CLAUDE_REVIEW_IDLE_SECONDS=${CLAUDE_REVIEW_IDLE_SECONDS:-180}
|
|
156
|
+
CLAUDE_REVIEW_ARTIFACT_ROOT=${CLAUDE_REVIEW_ARTIFACT_ROOT:-"$(pwd)/.webpresso/reviews"}
|
|
157
|
+
CLAUDE_REVIEW_CODE=0
|
|
158
|
+
wp review run \
|
|
159
|
+
--provider claude \
|
|
160
|
+
--prompt-file "$PROMPT_FILE" \
|
|
161
|
+
"${CLAUDE_MODEL_ARGS[@]}" \
|
|
162
|
+
--effort "$CLAUDE_REVIEW_EFFORT" \
|
|
163
|
+
--stage review \
|
|
164
|
+
--artifact-root "$CLAUDE_REVIEW_ARTIFACT_ROOT" \
|
|
165
|
+
--idle-seconds "$CLAUDE_REVIEW_IDLE_SECONDS"
|
|
166
|
+
CLAUDE_REVIEW_CODE=$?
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Treat `true-idle`, `protocol-unsupported`, provider failure, abort, spawn failure, or artifact failure as an unavailable advisory result. Never replace them with a static timeout, arbitrary byte-growth heartbeat, or buffered-output fallback.
|
|
170
|
+
|
|
171
|
+
#### Invocation policy
|
|
172
|
+
|
|
173
|
+
Run one provider review per invocation. Do not retry, fall back to another
|
|
174
|
+
provider, or rotate accounts within the invocation. A new invocation requires
|
|
175
|
+
an explicit diagnosis and caller decision. Do not fall back to an unbounded
|
|
176
|
+
whole-PR prompt.
|
|
177
|
+
|
|
178
|
+
Summarize findings with severity, evidence, model, artifact path, and whether you independently verified them.
|
|
179
|
+
|
|
180
|
+
### Challenge
|
|
181
|
+
|
|
182
|
+
Ask Claude to argue against the current plan: hidden assumptions, failure modes, missing tests, and simpler alternatives.
|
|
183
|
+
|
|
184
|
+
### Consult
|
|
185
|
+
|
|
186
|
+
Ask a focused repo question. Include only the necessary file paths and snippets; do not send secrets.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codex
|
|
3
|
+
description: "Codex CLI outside-voice wrapper for code review, plan challenge, or consultation from non-Codex hosts."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Codex outside voice
|
|
8
|
+
|
|
9
|
+
Use this skill from Claude or another non-Codex host when the user wants Codex to independently review a diff, challenge a plan, or answer a repo question. Keep Codex read-only by default and treat its answer as external advice until independently verified.
|
|
10
|
+
|
|
11
|
+
## Primary path: the `wp_review_run` MCP tool
|
|
12
|
+
|
|
13
|
+
When the webpresso MCP server is available, call `wp_review_run` exactly once instead of any bash block below. It is the same `wp review run` typed runtime, called in-process, and takes a `prompt` string without `--prompt-file` bookkeeping. Use the default review stage.
|
|
14
|
+
|
|
15
|
+
```jsonc
|
|
16
|
+
// wp_review_run MCP tool call
|
|
17
|
+
{
|
|
18
|
+
"prompt": "<diff summary + what to look for>",
|
|
19
|
+
"provider": "codex",
|
|
20
|
+
// model, effort, artifactRoot, idleSeconds, and stage are optional and
|
|
21
|
+
// default the same way the `wp review run` CLI does. The default stage is
|
|
22
|
+
// review.
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Use the requested provider for this invocation. Do not retry, use provider fallback, or rotate accounts within the invocation. Never shell into a provider CLI when MCP is available; that bypasses typed artifact capture under `.webpresso/reviews`. The pretool guard hook redirects provider review launches to MCP.
|
|
27
|
+
|
|
28
|
+
For long-running reviews, prefer the async MCP path: call `wp_review_run` with
|
|
29
|
+
`"provider": "codex"` and `"background": true`, then poll `wp_review_wait`
|
|
30
|
+
with the returned `runId`. Do not solve MCP transport limits by inflating
|
|
31
|
+
synchronous review timeouts.
|
|
32
|
+
|
|
33
|
+
The bash blocks in this skill (below) are the **MCP-unavailable fallback only** — use them when the webpresso MCP server itself is not reachable in the current host, not as a provider-fallback mechanism.
|
|
34
|
+
|
|
35
|
+
## Single-shot budget (anti-stampede)
|
|
36
|
+
|
|
37
|
+
- Default: **one** review invocation per request.
|
|
38
|
+
- Do **not** fan out parallel multi-host review matrices unless the user set `review_budget`/`N` > 1.
|
|
39
|
+
- Prefer `wp_review_run` (MCP) or `wp review run` (CLI fallback) over spawn/wait agent loops for review.
|
|
40
|
+
- Keep prompts bounded; no whole-repo paste.
|
|
41
|
+
|
|
42
|
+
## MCP-unavailable fallback (raw CLI)
|
|
43
|
+
|
|
44
|
+
Everything from here down is the manual `wp review run` CLI path documented for hosts or sessions where the webpresso MCP server is not reachable. Prefer `wp_review_run` above whenever MCP is available.
|
|
45
|
+
|
|
46
|
+
## MCP-unavailable fallback: auth check
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
if ! codex login status >/dev/null 2>&1; then
|
|
50
|
+
echo "CODEX_AUTH=missing: run codex login before using the codex outside-voice skill"
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
53
|
+
echo "CODEX_AUTH=ok"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## MCP-unavailable fallback: portable prompt file
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
PROMPT_FILE=$(mktemp -t wp-codex-review.XXXXXX)
|
|
60
|
+
trap 'rm -f "$PROMPT_FILE"' EXIT
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Dashboard helper relation
|
|
64
|
+
|
|
65
|
+
When called by `wp dash`, record the outside-voice lifecycle with
|
|
66
|
+
`wp dash-helper-start --provider codex --role reviewer` and
|
|
67
|
+
`wp dash-helper-complete --provider codex --role reviewer --outcome <completed|failed>`
|
|
68
|
+
using the actual terminal outcome and artifact path.
|
|
69
|
+
Standalone calls skip helper emission. Codex native subagent events are not
|
|
70
|
+
parent-linked in the managed lifecycle; this unsupported coverage must stay
|
|
71
|
+
explicit, and completion must never be inferred from text, PIDs, or
|
|
72
|
+
timestamps.
|
|
73
|
+
|
|
74
|
+
## Options
|
|
75
|
+
|
|
76
|
+
Every mode runs through the `wp review run` runtime and honors these environment
|
|
77
|
+
overrides. Set them inline, e.g.
|
|
78
|
+
`CODEX_REVIEW_MODEL=gpt-5.6-sol CODEX_REVIEW_EFFORT=high /codex`.
|
|
79
|
+
|
|
80
|
+
- `CODEX_REVIEW_MODEL` — the Codex model. Defaults to the `model = "..."` in the
|
|
81
|
+
active Codex config (`${CODEX_HOME:-~/.codex}/config.toml`); if neither the
|
|
82
|
+
environment nor config names a model, `wp review run` lets the Codex CLI choose
|
|
83
|
+
its own default. It MUST be a model the current login is provisioned for: ChatGPT-account
|
|
84
|
+
logins use the config's codenamed ids (e.g. `gpt-5.6-sol`) and reject a bare
|
|
85
|
+
`gpt-5.6`. When the user names a model ("review with 5.6-sol"), pass it here.
|
|
86
|
+
- `CODEX_REVIEW_EFFORT` — reasoning effort, default `medium`. The review stage
|
|
87
|
+
accepts only `medium` or `high`; any other value is rejected.
|
|
88
|
+
- `CODEX_REVIEW_IDLE_SECONDS` — idle timeout in seconds for the review stage,
|
|
89
|
+
default `180`.
|
|
90
|
+
- `CODEX_REVIEW_ARTIFACT_ROOT` — directory for private runtime diagnostics,
|
|
91
|
+
default `<cwd>/.webpresso/reviews`. Never commit files from this directory or
|
|
92
|
+
cite them as approval evidence.
|
|
93
|
+
|
|
94
|
+
Direct `wp review run` output is advisory. `wp_review_gate` is plan-only
|
|
95
|
+
exact-version draft approval/auto-promotion; implementation/phase reviews use
|
|
96
|
+
advisory `wp_review_run` and never mutate blueprint approval state. CLI delivery
|
|
97
|
+
gates are MCP-unavailable compatibility only.
|
|
98
|
+
|
|
99
|
+
## Modes
|
|
100
|
+
|
|
101
|
+
### Review
|
|
102
|
+
|
|
103
|
+
1. Capture the current branch, base branch, and `git diff --stat`.
|
|
104
|
+
2. Write a concise prompt asking Codex to find correctness, security, data-loss, and maintainability risks.
|
|
105
|
+
3. Run Codex through the typed review runtime in read-only mode:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# CODEX_REVIEW_MODEL / CODEX_REVIEW_EFFORT are overridable — see ## Options for
|
|
109
|
+
# the full option list, valid values, and how to pick a login-supported model.
|
|
110
|
+
CODEX_REVIEW_MODEL=${CODEX_REVIEW_MODEL:-}
|
|
111
|
+
CODEX_MODEL_ARGS=()
|
|
112
|
+
if [ -n "$CODEX_REVIEW_MODEL" ]; then
|
|
113
|
+
CODEX_MODEL_ARGS=(--model "$CODEX_REVIEW_MODEL")
|
|
114
|
+
fi
|
|
115
|
+
CODEX_REVIEW_EFFORT=${CODEX_REVIEW_EFFORT:-medium}
|
|
116
|
+
case "$CODEX_REVIEW_EFFORT" in
|
|
117
|
+
medium|high) ;;
|
|
118
|
+
*) echo "CODEX_REVIEW_EFFORT must be one of: medium, high" >&2; exit 2 ;;
|
|
119
|
+
esac
|
|
120
|
+
CODEX_REVIEW_IDLE_SECONDS=${CODEX_REVIEW_IDLE_SECONDS:-180}
|
|
121
|
+
CODEX_REVIEW_ARTIFACT_ROOT=${CODEX_REVIEW_ARTIFACT_ROOT:-"$(pwd)/.webpresso/reviews"}
|
|
122
|
+
CODEX_REVIEW_CODE=0
|
|
123
|
+
wp review run \
|
|
124
|
+
--provider codex \
|
|
125
|
+
--prompt-file "$PROMPT_FILE" \
|
|
126
|
+
"${CODEX_MODEL_ARGS[@]}" \
|
|
127
|
+
--effort "$CODEX_REVIEW_EFFORT" \
|
|
128
|
+
--stage review \
|
|
129
|
+
--artifact-root "$CODEX_REVIEW_ARTIFACT_ROOT" \
|
|
130
|
+
--idle-seconds "$CODEX_REVIEW_IDLE_SECONDS"
|
|
131
|
+
CODEX_REVIEW_CODE=$?
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
4. Summarize findings with severity, evidence, and whether you independently verified them.
|
|
135
|
+
|
|
136
|
+
### Challenge
|
|
137
|
+
|
|
138
|
+
Ask Codex to argue against the current plan: hidden assumptions, failure modes, missing tests, and simpler alternatives.
|
|
139
|
+
|
|
140
|
+
### Consult
|
|
141
|
+
|
|
142
|
+
Ask a focused repo question. Include only the necessary file paths and snippets; do not send secrets.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Yeachan Heo
|
|
4
|
+
|
|
5
|
+
Applies to the upstream deep-interview skill vendored from
|
|
6
|
+
https://github.com/Yeachan-Heo/oh-my-codex at commit
|
|
7
|
+
0e00a6ebdd12a6674f5a4735942940b9bdcdb8c0. The upstream repository declares
|
|
8
|
+
the MIT license in its package.json and Cargo.toml at that commit without
|
|
9
|
+
shipping a standalone LICENSE file; this file preserves the standard MIT
|
|
10
|
+
copyright and permission notice for the vendored material.
|
|
11
|
+
|
|
12
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
14
|
+
in the Software without restriction, including without limitation the rights
|
|
15
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
16
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
17
|
+
furnished to do so, subject to the following conditions:
|
|
18
|
+
|
|
19
|
+
The above copyright notice and this permission notice shall be included in all
|
|
20
|
+
copies or substantial portions of the Software.
|
|
21
|
+
|
|
22
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
24
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
25
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
26
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
|
+
SOFTWARE.
|