@flitzrrr/agent-skills 1.0.3 → 1.2.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/.cursorrules +2 -2
- package/.github/copilot-instructions.md +59 -0
- package/.lovable +1 -1
- package/AGENTS.md +2 -2
- package/CHEATSHEET.md +84 -86
- package/CLAUDE.md +2 -2
- package/LICENSE +27 -0
- package/README.md +191 -99
- package/bin/build-catalog.js +208 -0
- package/bin/cli.js +7 -3
- package/bin/rebuild-symlinks.js +161 -0
- package/bin/sync-docs.js +147 -0
- package/bin/sync-skills.sh +17 -0
- package/bin/test-cli.js +115 -0
- package/bin/update-wiki.js +102 -0
- package/package.json +9 -2
- package/skills/dispatch-parallel-agents/skill.md +95 -0
- package/skills/execute-work-package/SKILL.md +300 -0
- package/skills/execute-work-package/scripts/start-l4l-oci.sh +75 -0
- package/skills/execute-work-package/tpl-execution-blueprint.md +39 -0
- package/skills/execute-work-package/tpl-execution-digest.md +24 -0
- package/skills/execute-work-package/tpl-implementer-execute-prompt.md +57 -0
- package/skills/execute-work-package/tpl-implementer-preflight-prompt.md +66 -0
- package/skills/product-description-seo/CROSS-SELL.md +31 -0
- package/skills/product-description-seo/KEYWORDS.md +35 -0
- package/skills/product-description-seo/SKILL.md +361 -0
- package/skills/product-description-seo/scripts/analyze_catalog.py +136 -0
- package/skills/product-description-seo/scripts/check_quality.py +204 -0
- package/skills/product-description-seo/scripts/extract_category.py +88 -0
- package/skills/product-description-seo/scripts/track_progress.py +140 -0
- package/skills/product-description-seo/scripts/update_catalog.py +80 -0
- package/skills/product-description-seo/scripts/validate_json.py +87 -0
- package/skills/systematic-debugging/skill.md +87 -0
- package/skills/tob-gh-cli/SKILL.md +71 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: execute-work-package
|
|
3
|
+
description: Execute a significant implementation unit (phase or major slice) using a gated subagent loop (blueprint -> gate -> execute -> digest) without creating new persistent artifacts.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility:
|
|
6
|
+
opencode: ">=0.1"
|
|
7
|
+
claude-code: ">=1.0"
|
|
8
|
+
cursor: ">=0.40"
|
|
9
|
+
copilot: ">=1.0"
|
|
10
|
+
codex: ">=0.1"
|
|
11
|
+
windsurf: ">=1.0"
|
|
12
|
+
metadata:
|
|
13
|
+
category: execution
|
|
14
|
+
phase: implementation
|
|
15
|
+
transport_options: [mcp, stateful, fresh]
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Skill: Execute Work Packet
|
|
19
|
+
|
|
20
|
+
This skill standardizes **execution/implementation** once planning is gated.
|
|
21
|
+
|
|
22
|
+
It is a small, repeatable protocol:
|
|
23
|
+
|
|
24
|
+
1) **BLUEPRINT**: Subagent returns an **Execution Blueprint** (step list)
|
|
25
|
+
2) **GATE**: Primary approves (primary-internal)
|
|
26
|
+
3) **EXECUTE**: Fresh subagent implements and verifies
|
|
27
|
+
4) **DIGEST**: Subagent returns a compact digest (no raw logs/diffs)
|
|
28
|
+
|
|
29
|
+
This skill deliberately **does not** create new persistent artifacts in `docs/` or `plans/`.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## When to Use
|
|
34
|
+
|
|
35
|
+
Use this skill when:
|
|
36
|
+
|
|
37
|
+
- A plan/phase (or a major slice of a phase) already has a clear **DoD** and **verification** approach.
|
|
38
|
+
- You want to offload implementation to a subagent without causing primary context bloat.
|
|
39
|
+
- You want predictable, reviewable execution with a single explicit gate.
|
|
40
|
+
|
|
41
|
+
If your phase implementation plan is still vague or unverified against the repo, run `author-and-verify-implementation-plan` first.
|
|
42
|
+
|
|
43
|
+
Do **not** use this skill to:
|
|
44
|
+
|
|
45
|
+
- (Re-)do planning (scope, risks, alternatives) — that is **Primary** work.
|
|
46
|
+
- Generate documentation/planning artifacts — use `generate-docs`, `create-plan`, `update-plan`, `update-docs`.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Execution Model
|
|
51
|
+
|
|
52
|
+
### Roles
|
|
53
|
+
|
|
54
|
+
- **Primary (maintainer)**
|
|
55
|
+
- Owns scope/DoD/risk decisions and gating.
|
|
56
|
+
- Chooses the work packet (phase or significant phase slice).
|
|
57
|
+
- Owns Git operations (stage/commit/PR) unless explicitly delegated.
|
|
58
|
+
- Updates plan/todo via `update-plan` as needed.
|
|
59
|
+
|
|
60
|
+
- **Subagent (implementer)**
|
|
61
|
+
- Does execution only.
|
|
62
|
+
- First returns a **step list**.
|
|
63
|
+
- After approval, executes those steps and returns a **digest**.
|
|
64
|
+
- Does not do Git operations.
|
|
65
|
+
|
|
66
|
+
## Routing Matrix (Who does what)
|
|
67
|
+
|
|
68
|
+
- **Writes**: code files in the target repository (working tree changes) and runs verification commands.
|
|
69
|
+
- **Does NOT write**: `plans/**` or `docs/**` artifacts.
|
|
70
|
+
- **Primary**: owns gating/approval, Git operations, and any updates to `plans/**` (typically via `update-plan`).
|
|
71
|
+
- **implementer**: execution only (blueprint → execute → digest), no Git.
|
|
72
|
+
- **doc-explorer**: not used for this skill (unless you explicitly want docs/plan artifacts, in which case use the appropriate planning/doc skills).
|
|
73
|
+
|
|
74
|
+
### Why `docs/` and `plans/` matter here
|
|
75
|
+
|
|
76
|
+
- `plans/` provides the gated intent/DoD and references for what to implement.
|
|
77
|
+
- `docs/` (if present) provides curated inventories (modules/features/symbols) so the subagent does not rediscover everything.
|
|
78
|
+
|
|
79
|
+
### Transport
|
|
80
|
+
|
|
81
|
+
This skill supports three transport mechanisms. **If l4l-oci MCP tools are available** (check: do you have `create_handle`, `generate_blueprint`, `submit_gate`, `execute_handle`, `get_digest` tools?), **always use Option A.** Only fall back to B/C if MCP is not configured.
|
|
82
|
+
|
|
83
|
+
#### Pre-flight: Ensure l4l-oci server is running
|
|
84
|
+
|
|
85
|
+
Before using Option A, run the bundled helper:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
skills/execute-work-package/scripts/start-l4l-oci.sh
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Behavior:
|
|
92
|
+
- Uses `L4L_OCI_ROOT` (default: `$HOME/git/l4l-oci`)
|
|
93
|
+
- Starts `python -m l4l_oci` in background if needed
|
|
94
|
+
- Waits for MCP `health` to return `ok`
|
|
95
|
+
- Exports `L4L_OCI_DEFAULT_MODEL=qwen-openrouter` for startup unless already set
|
|
96
|
+
|
|
97
|
+
Prerequisites:
|
|
98
|
+
- `OPENROUTER_API_KEY` (or `QWEN_API_KEY`) must be available in the environment
|
|
99
|
+
|
|
100
|
+
#### Option A: MCP via l4l-oci (Default)
|
|
101
|
+
|
|
102
|
+
Use the l4l-oci MCP server. The primary calls MCP tools directly — no Agent spawning needed:
|
|
103
|
+
|
|
104
|
+
1. `create_handle(project_root)` → returns `handle_id`
|
|
105
|
+
2. `generate_blueprint(handle_id, prompt)` → async; poll with `get_status(handle_id)` until complete
|
|
106
|
+
3. `get_blueprint(handle_id, format="markdown")` → review the Execution Blueprint
|
|
107
|
+
4. `submit_gate(handle_id, decision="accept"|"reject", notes=...)` → explicit gate
|
|
108
|
+
5. `execute_handle(handle_id)` → async; poll with `get_status(handle_id)` until complete
|
|
109
|
+
6. `get_digest(handle_id, format="markdown")` → returns Execution Digest
|
|
110
|
+
7. `cleanup_handle(handle_id)` → optional cleanup
|
|
111
|
+
|
|
112
|
+
Benefits: state persistence across restarts, model decoupling (cheap Sub-LLM), scope enforcement, iterative blueprint refinement.
|
|
113
|
+
|
|
114
|
+
Additional tools: `health()` (service health check), `list_handles()` (list all active handles).
|
|
115
|
+
|
|
116
|
+
#### Option B: Stateful Subagent (OpenCode)
|
|
117
|
+
|
|
118
|
+
Original design using `resumeSessionId` to maintain subagent state between BLUEPRINT and EXECUTE:
|
|
119
|
+
|
|
120
|
+
- BLUEPRINT and EXECUTE use the **same** session (resumed via `resumeSessionId`)
|
|
121
|
+
- The subagent retains context from the BLUEPRINT phase
|
|
122
|
+
|
|
123
|
+
This is the native OpenCode pattern.
|
|
124
|
+
|
|
125
|
+
#### Option C: Fresh Agent (Claude Code / Cursor / Copilot)
|
|
126
|
+
|
|
127
|
+
BLUEPRINT and EXECUTE use **separate** Agent invocations (not SendMessage to resume):
|
|
128
|
+
|
|
129
|
+
- **BLUEPRINT Agent**: spawned with `mode: auto`, returns the step list, then terminates.
|
|
130
|
+
- **EXECUTE Agent**: spawned as a **new** Agent with the approved step list baked into the prompt. This avoids unreliable SendMessage-based resumption of idle agents.
|
|
131
|
+
|
|
132
|
+
The EXECUTE prompt must include the full approved step list and all references — the agent has no memory of the BLUEPRINT agent's context.
|
|
133
|
+
|
|
134
|
+
#### Platform Decision Table
|
|
135
|
+
|
|
136
|
+
| Platform | Recommended | Fallback |
|
|
137
|
+
|----------|------------|----------|
|
|
138
|
+
| Claude Code | Option A (MCP) | Option C (Fresh Agent) |
|
|
139
|
+
| Cursor | Option A (MCP) | Option C (Fresh Agent) |
|
|
140
|
+
| Copilot | Option A (MCP) | Option C (Fresh Agent) |
|
|
141
|
+
| Codex | Option C (Fresh Agent) | — |
|
|
142
|
+
| Windsurf | Option A (MCP) | Option C (Fresh Agent) |
|
|
143
|
+
| OpenCode | Option B (Stateful) | Option A (MCP) |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Protocol
|
|
148
|
+
|
|
149
|
+
### 0) Primary inputs (for any work packet)
|
|
150
|
+
|
|
151
|
+
Before delegating:
|
|
152
|
+
|
|
153
|
+
- Ensure the work packet is already gated (scope/DoD decided).
|
|
154
|
+
- Provide an explicit **task statement** plus **references** to the relevant planning artifacts.
|
|
155
|
+
The subagent should read these references itself (the primary does not need to paste content).
|
|
156
|
+
Recommended references:
|
|
157
|
+
- `plans/<plan>/plan.md`
|
|
158
|
+
- `plans/<plan>/phases/phase-N.md`
|
|
159
|
+
- `plans/<plan>/implementation/phase-N-impl.md`
|
|
160
|
+
- `plans/<plan>/todo.md` (optional)
|
|
161
|
+
- If project documentation exists, also provide references to it so the subagent can use the curated inventories
|
|
162
|
+
(symbols, modules, features) instead of rediscovering everything from scratch:
|
|
163
|
+
- `docs/overview.md` (optional)
|
|
164
|
+
- `docs/modules/*.md` (optional)
|
|
165
|
+
- `docs/features/*.md` (optional)
|
|
166
|
+
- Provide a **Verify Command** if one is already decided.
|
|
167
|
+
If not, the subagent proposes exactly **one** verify command in the BLUEPRINT (to be gated by the primary).
|
|
168
|
+
|
|
169
|
+
### 1) MODE: BLUEPRINT (Execution Blueprint)
|
|
170
|
+
|
|
171
|
+
> **Option A (MCP):** Call `create_handle(project_root)`, then `generate_blueprint(handle_id, prompt)`. Poll `get_status(handle_id)` until complete, then `get_blueprint(handle_id, format="markdown")` to review.
|
|
172
|
+
|
|
173
|
+
Primary delegates to `implementer` with a prompt based on `tpl-implementer-preflight-prompt.md`.
|
|
174
|
+
|
|
175
|
+
**Gate:** Primary reviews the step list and either:
|
|
176
|
+
|
|
177
|
+
- Approves (GO)
|
|
178
|
+
- Requests revision (feedback)
|
|
179
|
+
- Aborts and replans
|
|
180
|
+
|
|
181
|
+
#### Invariant: explicit approval token
|
|
182
|
+
|
|
183
|
+
Primary provides an explicit approval token before execution (primary-internal gate). Example:
|
|
184
|
+
|
|
185
|
+
- `APPROVE-WP1`
|
|
186
|
+
|
|
187
|
+
If the user requests changes, the step list must be revised and re-approved with a new approval token.
|
|
188
|
+
|
|
189
|
+
### 2) Execute (new Agent)
|
|
190
|
+
|
|
191
|
+
> **Option A (MCP):** Call `submit_gate(handle_id, decision="accept")` then `execute_handle(handle_id)`. Poll `get_status(handle_id)` until complete, then `get_digest(handle_id, format="markdown")` for the digest.
|
|
192
|
+
|
|
193
|
+
Primary spawns a **new** `implementer` Agent with a prompt based on `tpl-implementer-execute-prompt.md`. The prompt includes the full approved step list, all references, and the verify command. Do NOT use SendMessage to resume the BLUEPRINT agent — spawn a fresh Agent instead.
|
|
194
|
+
|
|
195
|
+
#### Invariant: MODE lock
|
|
196
|
+
|
|
197
|
+
The execute prompt MUST start with a clear mode indicator:
|
|
198
|
+
|
|
199
|
+
- `MODE: EXECUTE`
|
|
200
|
+
|
|
201
|
+
and MUST include the approval token.
|
|
202
|
+
|
|
203
|
+
> **Option A (MCP):** Skip the Agent spawn above. Call `submit_gate` → `execute_handle` → poll `get_status` → `get_digest` directly via MCP tools.
|
|
204
|
+
|
|
205
|
+
### 3) Digest back to Primary
|
|
206
|
+
|
|
207
|
+
Subagent responds with a compact digest:
|
|
208
|
+
|
|
209
|
+
- Outcome (succeeded/failed)
|
|
210
|
+
- Files changed (paths)
|
|
211
|
+
- Verification result (command + exit)
|
|
212
|
+
- If failure: only a small, relevant excerpt (no full logs)
|
|
213
|
+
|
|
214
|
+
### 4) Primary post-processing
|
|
215
|
+
|
|
216
|
+
Read the digest carefully. The subagent's verification result determines next steps:
|
|
217
|
+
|
|
218
|
+
- **Verification passed:** Spot-check with `git diff --stat` to confirm expected changes. Do not re-run the full test suite yourself – the subagent already did.
|
|
219
|
+
- **Verification failed or incomplete:** If additional testing is needed, spawn a new subagent with specific test instructions and relevant references. Do not run large test suites in the primary session.
|
|
220
|
+
- **BLOCKED / no verification ran:** Decide whether to provide missing input and re-delegate, or run a targeted check yourself.
|
|
221
|
+
|
|
222
|
+
Then:
|
|
223
|
+
|
|
224
|
+
- Updates `plans/<plan>/todo.md` and phase status via `update-plan`
|
|
225
|
+
- Commits / creates PR **only** when explicitly requested by the user
|
|
226
|
+
|
|
227
|
+
Optional but recommended (Primary):
|
|
228
|
+
|
|
229
|
+
- Before execute: capture baseline via `git status` / `git diff --name-only`
|
|
230
|
+
- After execute: confirm changes exist via `git diff --stat`
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Output Contracts
|
|
235
|
+
|
|
236
|
+
### Step List Contract (Subagent -> Primary)
|
|
237
|
+
|
|
238
|
+
Subagent returns an **Execution Blueprint** in the format of `tpl-execution-blueprint.md`.
|
|
239
|
+
|
|
240
|
+
The blueprint is expected to be **concrete** (file paths and/or symbol/component targets), not a restatement of plan text.
|
|
241
|
+
|
|
242
|
+
#### Mode: BLUEPRINT
|
|
243
|
+
|
|
244
|
+
In BLUEPRINT mode, the subagent must NOT:
|
|
245
|
+
|
|
246
|
+
- apply patches
|
|
247
|
+
- run commands
|
|
248
|
+
- claim that code was changed
|
|
249
|
+
|
|
250
|
+
### Digest Contract (Subagent -> Primary)
|
|
251
|
+
|
|
252
|
+
Subagent MUST return only:
|
|
253
|
+
|
|
254
|
+
- **Outcome**: succeeded | failed
|
|
255
|
+
- **Edits**: list of files changed + 1-line note each
|
|
256
|
+
- **Verify**: command + exit code + (if failed) small excerpt
|
|
257
|
+
- **Next**: 1–3 bullets (or “ready for Primary Git/commit”)
|
|
258
|
+
|
|
259
|
+
#### Mode: EXECUTE
|
|
260
|
+
|
|
261
|
+
In EXECUTE mode, the subagent must:
|
|
262
|
+
|
|
263
|
+
- implement changes (typically via patch/apply_patch)
|
|
264
|
+
- run the verify command (via bash)
|
|
265
|
+
- if neither happened: return **BLOCKED** with a concrete reason
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Rules
|
|
270
|
+
|
|
271
|
+
- Subagent must not run Git operations (commit, rebase, push).
|
|
272
|
+
- Skill-first: when this skill is invoked, follow its MODE + output contracts before doing anything else.
|
|
273
|
+
- Keep verification minimal: **one** explicit verify command unless the work packet DoD requires more. The verify command must **exercise the changed behavior** (e.g., run relevant tests, hit the affected endpoint, trigger the modified flow) — not just compile, lint, or type-check.
|
|
274
|
+
- No raw diffs or long logs in responses.
|
|
275
|
+
- If verify fails: apply **minimal, targeted fixes** (no refactors) and re-run verify. If still failing or a larger change is required, stop and report a digest with a minimal relevant excerpt.
|
|
276
|
+
- If the step list must change during execution: stop and ask Primary for a new gate.
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Coding Standards
|
|
281
|
+
|
|
282
|
+
These apply to all code written during execution – by the implementer subagent or the primary.
|
|
283
|
+
|
|
284
|
+
1. **No hardcoded defaults.** Use configuration files or environment variables for values that may change across environments.
|
|
285
|
+
2. **Analyze root cause.** Don't patch symptoms. Understand why something is broken before changing code.
|
|
286
|
+
3. **Minimal changes.** Only touch what the work packet requires. Don't refactor adjacent code you weren't asked to change.
|
|
287
|
+
4. **Preserve existing patterns.** Match the conventions already established in the codebase (naming, structure, error handling).
|
|
288
|
+
5. **No silent failures.** Don't swallow errors or add fallbacks that hide problems. If something fails, it should be visible.
|
|
289
|
+
6. **Respect the dependency boundary.** Don't introduce new dependencies without explicit approval from the primary/user.
|
|
290
|
+
|
|
291
|
+
If `docs/coding-standards.md` exists in the target repo, read and follow it as well – project-specific standards take precedence.
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Templates
|
|
296
|
+
|
|
297
|
+
- `tpl-implementer-preflight-prompt.md` — Primary -> Subagent (MODE: BLUEPRINT) prompt
|
|
298
|
+
- `tpl-implementer-execute-prompt.md` — Primary -> Subagent (MODE: EXECUTE) prompt (same `task_id`)
|
|
299
|
+
- `tpl-execution-blueprint.md` — canonical blueprint format (step list)
|
|
300
|
+
- `tpl-execution-digest.md` — canonical digest format
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
L4L_OCI_ROOT="${L4L_OCI_ROOT:-$HOME/git/l4l-oci}"
|
|
5
|
+
L4L_OCI_URL="${L4L_OCI_URL:-http://127.0.0.1:8765/mcp}"
|
|
6
|
+
L4L_OCI_DEFAULT_MODEL="${L4L_OCI_DEFAULT_MODEL:-qwen-openrouter}"
|
|
7
|
+
L4L_OCI_LOG_FILE="${L4L_OCI_LOG_FILE:-$L4L_OCI_ROOT/logs/l4l-oci-service.log}"
|
|
8
|
+
L4L_OCI_PID_FILE="${L4L_OCI_PID_FILE:-$L4L_OCI_ROOT/.l4l-oci/l4l-oci.pid}"
|
|
9
|
+
|
|
10
|
+
PY="$L4L_OCI_ROOT/.venv/bin/python"
|
|
11
|
+
if [ ! -x "$PY" ]; then
|
|
12
|
+
echo "ERROR: Python not found at $PY" >&2
|
|
13
|
+
exit 1
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
if [ -z "${OPENROUTER_API_KEY:-}" ] && [ -z "${QWEN_API_KEY:-}" ]; then
|
|
17
|
+
echo "ERROR: Neither OPENROUTER_API_KEY nor QWEN_API_KEY is set." >&2
|
|
18
|
+
exit 1
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
health_ok() {
|
|
22
|
+
"$PY" - <<'PY'
|
|
23
|
+
import asyncio
|
|
24
|
+
import os
|
|
25
|
+
from fastmcp import Client
|
|
26
|
+
|
|
27
|
+
url = os.environ["L4L_OCI_URL"]
|
|
28
|
+
|
|
29
|
+
async def main() -> int:
|
|
30
|
+
try:
|
|
31
|
+
async with Client(url) as client:
|
|
32
|
+
res = await client.call_tool("health", {})
|
|
33
|
+
status = (res.data or {}).get("status")
|
|
34
|
+
return 0 if status == "ok" else 1
|
|
35
|
+
except Exception:
|
|
36
|
+
return 1
|
|
37
|
+
|
|
38
|
+
raise SystemExit(asyncio.run(main()))
|
|
39
|
+
PY
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export L4L_OCI_URL
|
|
43
|
+
|
|
44
|
+
if health_ok; then
|
|
45
|
+
echo "l4l-oci already reachable at $L4L_OCI_URL"
|
|
46
|
+
exit 0
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
if [ -f "$L4L_OCI_PID_FILE" ]; then
|
|
50
|
+
OLD_PID="$(cat "$L4L_OCI_PID_FILE" 2>/dev/null || true)"
|
|
51
|
+
if [ -n "$OLD_PID" ] && ! kill -0 "$OLD_PID" 2>/dev/null; then
|
|
52
|
+
rm -f "$L4L_OCI_PID_FILE"
|
|
53
|
+
fi
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
mkdir -p "$(dirname "$L4L_OCI_LOG_FILE")" "$(dirname "$L4L_OCI_PID_FILE")"
|
|
57
|
+
|
|
58
|
+
(
|
|
59
|
+
cd "$L4L_OCI_ROOT"
|
|
60
|
+
export L4L_OCI_DEFAULT_MODEL
|
|
61
|
+
nohup "$PY" -m l4l_oci >>"$L4L_OCI_LOG_FILE" 2>&1 &
|
|
62
|
+
echo "$!" >"$L4L_OCI_PID_FILE"
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
for _ in $(seq 1 30); do
|
|
66
|
+
if health_ok; then
|
|
67
|
+
echo "l4l-oci started at $L4L_OCI_URL"
|
|
68
|
+
exit 0
|
|
69
|
+
fi
|
|
70
|
+
sleep 0.5
|
|
71
|
+
done
|
|
72
|
+
|
|
73
|
+
echo "ERROR: l4l-oci did not become healthy. Last log lines:" >&2
|
|
74
|
+
tail -n 40 "$L4L_OCI_LOG_FILE" >&2 || true
|
|
75
|
+
exit 1
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: execution
|
|
3
|
+
entity: blueprint
|
|
4
|
+
skill: execute-work-package
|
|
5
|
+
created: "{{date}}"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Execution Blueprint (Step List)
|
|
9
|
+
|
|
10
|
+
## Work Packet
|
|
11
|
+
|
|
12
|
+
- intent: {{intent}}
|
|
13
|
+
- scope_paths: {{scope_paths}}
|
|
14
|
+
|
|
15
|
+
## References
|
|
16
|
+
|
|
17
|
+
### Plans
|
|
18
|
+
- plan: {{plan_ref}}
|
|
19
|
+
- phase: {{phase_ref}}
|
|
20
|
+
- implementation_plan: {{implementation_plan_ref}}
|
|
21
|
+
- todo (optional): {{todo_ref}}
|
|
22
|
+
|
|
23
|
+
### Docs (optional)
|
|
24
|
+
- overview: {{docs_overview_ref}}
|
|
25
|
+
- modules: {{docs_modules_ref}}
|
|
26
|
+
- features: {{docs_features_ref}}
|
|
27
|
+
|
|
28
|
+
## Steps
|
|
29
|
+
|
|
30
|
+
1. <concrete step; include file path and/or symbol/component>
|
|
31
|
+
2. ...
|
|
32
|
+
|
|
33
|
+
## Touched Files
|
|
34
|
+
|
|
35
|
+
- path/to/file
|
|
36
|
+
|
|
37
|
+
## Verify
|
|
38
|
+
|
|
39
|
+
`<single command>`
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: execution
|
|
3
|
+
entity: digest
|
|
4
|
+
skill: execute-work-package
|
|
5
|
+
created: "{{date}}"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Execution Digest (Reference Format)
|
|
9
|
+
|
|
10
|
+
### Outcome
|
|
11
|
+
- state: succeeded|failed
|
|
12
|
+
|
|
13
|
+
### Edits
|
|
14
|
+
- files_changed:
|
|
15
|
+
- path/to/file.ext — one-line summary
|
|
16
|
+
|
|
17
|
+
### Verify
|
|
18
|
+
- cmd: `...`
|
|
19
|
+
- exit: 0|1|...
|
|
20
|
+
- excerpt (only if failed): |
|
|
21
|
+
<few relevant lines>
|
|
22
|
+
|
|
23
|
+
### Next
|
|
24
|
+
- 1–3 bullets
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: execution
|
|
3
|
+
entity: subagent-execute-prompt
|
|
4
|
+
skill: execute-work-package
|
|
5
|
+
created: "{{date}}"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Implementer Execute Prompt (Run Approved Steps)
|
|
9
|
+
|
|
10
|
+
MODE: EXECUTE
|
|
11
|
+
|
|
12
|
+
You are the **implementer** subagent. This is a **fresh** agent — you have no prior context.
|
|
13
|
+
Read the referenced files yourself to build context, then execute.
|
|
14
|
+
|
|
15
|
+
Execute the **approved** step list exactly.
|
|
16
|
+
|
|
17
|
+
Constraints:
|
|
18
|
+
- Do NOT re-plan. Do NOT add new steps unless required to fix an immediate error that blocks the final verify.
|
|
19
|
+
- Do NOT run Git operations.
|
|
20
|
+
- Run the single verify command at the end.
|
|
21
|
+
- Return an **Execution Digest** (no raw diffs/logs).
|
|
22
|
+
|
|
23
|
+
Execution invariants (must):
|
|
24
|
+
- You MUST perform at least one concrete action: write/edit files and/or run a command.
|
|
25
|
+
- You MUST run the verify command.
|
|
26
|
+
- If you cannot change files or run commands, return:
|
|
27
|
+
- Outcome: BLOCKED
|
|
28
|
+
- Concrete reason
|
|
29
|
+
- What input is missing
|
|
30
|
+
|
|
31
|
+
<!-- IF MCP: This prompt is used for Options B/C (Stateful/Fresh Agent). For Option A (MCP), run `skills/execute-work-package/scripts/start-l4l-oci.sh` first, then call `submit_gate()` and `execute_handle()`. -->
|
|
32
|
+
|
|
33
|
+
## Approved Step List
|
|
34
|
+
{{approved_steps}}
|
|
35
|
+
|
|
36
|
+
## Planning References (read these yourself for context)
|
|
37
|
+
- Plan: {{plan_ref}}
|
|
38
|
+
- Phase: {{phase_ref}}
|
|
39
|
+
- Implementation Plan: {{implementation_plan_ref}}
|
|
40
|
+
|
|
41
|
+
## Documentation References (read these yourself if needed)
|
|
42
|
+
- Overview (optional): {{docs_overview_ref}}
|
|
43
|
+
- Modules (optional): {{docs_modules_ref}}
|
|
44
|
+
- Features (optional): {{docs_features_ref}}
|
|
45
|
+
|
|
46
|
+
<!-- IF MCP: When using l4l-oci MCP (Option A), poll `get_status()` and fetch digest via `get_digest()`. -->
|
|
47
|
+
|
|
48
|
+
## Verify Command
|
|
49
|
+
{{verify_command}}
|
|
50
|
+
|
|
51
|
+
## Output
|
|
52
|
+
|
|
53
|
+
Return a Markdown **Execution Digest** using the canonical format in:
|
|
54
|
+
|
|
55
|
+
- `skills/execute-work-package/tpl-execution-digest.md`
|
|
56
|
+
|
|
57
|
+
Do not restate the template. Just produce the digest.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: execution
|
|
3
|
+
entity: subagent-preflight-prompt
|
|
4
|
+
skill: execute-work-package
|
|
5
|
+
created: "{{date}}"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Implementer Preflight Prompt (Step List)
|
|
9
|
+
|
|
10
|
+
MODE: BLUEPRINT
|
|
11
|
+
|
|
12
|
+
You are the **implementer** subagent.
|
|
13
|
+
|
|
14
|
+
Your job: return an **Execution Blueprint** (step list) for the work packet below.
|
|
15
|
+
|
|
16
|
+
Constraints:
|
|
17
|
+
- Execution-only: do NOT do planning (no risks/alternatives/architecture commentary).
|
|
18
|
+
- Do NOT run Git operations.
|
|
19
|
+
- Keep verification minimal: provide exactly **one** verify command.
|
|
20
|
+
- Output must be compact and structured.
|
|
21
|
+
|
|
22
|
+
In BLUEPRINT mode:
|
|
23
|
+
- Do NOT apply patches.
|
|
24
|
+
- Do NOT run commands.
|
|
25
|
+
- Do NOT claim you changed code.
|
|
26
|
+
|
|
27
|
+
<!-- IF MCP: This prompt is used for Options B/C (Stateful/Fresh Agent). For Option A (MCP), run `skills/execute-work-package/scripts/start-l4l-oci.sh` first, then call `create_handle()` and `generate_blueprint()`. -->
|
|
28
|
+
|
|
29
|
+
## Work Packet
|
|
30
|
+
|
|
31
|
+
### Intent
|
|
32
|
+
{{intent}}
|
|
33
|
+
|
|
34
|
+
### Scope (paths / modules)
|
|
35
|
+
{{scope_paths}}
|
|
36
|
+
|
|
37
|
+
### Planning References (read them yourself)
|
|
38
|
+
- Plan: {{plan_ref}}
|
|
39
|
+
- Phase: {{phase_ref}}
|
|
40
|
+
- Implementation Plan: {{implementation_plan_ref}}
|
|
41
|
+
- Todo (optional): {{todo_ref}}
|
|
42
|
+
|
|
43
|
+
### Documentation References (if present, read them yourself)
|
|
44
|
+
- Overview (optional): {{docs_overview_ref}}
|
|
45
|
+
- Modules (optional): {{docs_modules_ref}}
|
|
46
|
+
- Features (optional): {{docs_features_ref}}
|
|
47
|
+
|
|
48
|
+
### DoD (short)
|
|
49
|
+
{{dod}}
|
|
50
|
+
|
|
51
|
+
### Verify Command
|
|
52
|
+
{{verify_command}}
|
|
53
|
+
|
|
54
|
+
If `{{verify_command}}` is empty/unknown, propose exactly **one** verify command.
|
|
55
|
+
|
|
56
|
+
<!-- IF MCP: When using l4l-oci MCP (Option A), pass planning/doc refs through the `generate_blueprint` prompt and retrieve results with `get_blueprint()`. -->
|
|
57
|
+
|
|
58
|
+
## Output
|
|
59
|
+
|
|
60
|
+
Return a Markdown **Execution Blueprint** using the canonical format in:
|
|
61
|
+
|
|
62
|
+
- `skills/execute-work-package/tpl-execution-blueprint.md`
|
|
63
|
+
|
|
64
|
+
Rules for BLUEPRINT:
|
|
65
|
+
- Do NOT restate phase/impl-plan steps. Concretize using docs inventories (symbols/features/modules) plus a brief code cross-check.
|
|
66
|
+
- Each step must include at least one concrete target (file path and/or symbol/component name).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Cross-Sell Matrix — Template
|
|
2
|
+
|
|
3
|
+
Define which product categories should reference each other in descriptions. Each description should mention 1-2 complementary products to encourage browsing and increase average order value.
|
|
4
|
+
|
|
5
|
+
## How to Use
|
|
6
|
+
|
|
7
|
+
For each category, list which other categories make natural companions — products that customers typically buy together or that solve related problems.
|
|
8
|
+
|
|
9
|
+
## Template
|
|
10
|
+
|
|
11
|
+
| Category | Cross-Sell To | Example Phrasing |
|
|
12
|
+
| ------------ | -------------------------- | --------------------------------------- |
|
|
13
|
+
| [Category A] | [Category B], [Category C] | "Pairs well with our [Category B]..." |
|
|
14
|
+
| [Category B] | [Category A], [Category D] | "For a complete setup, combine with..." |
|
|
15
|
+
|
|
16
|
+
## Example (Industrial Equipment)
|
|
17
|
+
|
|
18
|
+
| Category | Cross-Sell To | Example Phrasing |
|
|
19
|
+
| ---------------- | ---------------------------- | ------------------------------------------------------------------- |
|
|
20
|
+
| Power Drills | Drill Bits, Safety Equipment | "For optimal results, pair with our professional drill bit sets..." |
|
|
21
|
+
| Drill Bits | Power Drills, Storage Cases | "Designed for use with our industrial power drills..." |
|
|
22
|
+
| Safety Equipment | All tool categories | "Complete your safety setup with our full PPE range..." |
|
|
23
|
+
| Hand Tools | Tool Storage, Safety Gloves | "Store your set securely in our professional tool cases..." |
|
|
24
|
+
| Tool Storage | Hand Tools, Power Tools | "Organize your complete toolkit with matching drawer inserts..." |
|
|
25
|
+
|
|
26
|
+
## Principles
|
|
27
|
+
|
|
28
|
+
- Cross-sells should be genuinely useful, not random upsells
|
|
29
|
+
- Mention the complementary product naturally in the application paragraph (paragraph 3)
|
|
30
|
+
- Use phrasing like "combines well with", "for a complete setup", "pairs with"
|
|
31
|
+
- Maximum 2 cross-sell references per description to avoid sounding salesy
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Keyword Map — Template
|
|
2
|
+
|
|
3
|
+
Define SEO keywords per product category. Fill in with your catalog's categories and industry-specific terms.
|
|
4
|
+
|
|
5
|
+
## How to Use
|
|
6
|
+
|
|
7
|
+
For each category in your catalog, define three keyword tiers:
|
|
8
|
+
|
|
9
|
+
- **Primary:** Main search term — typically [product type] + [industry term]
|
|
10
|
+
- **Secondary:** Related terms, synonyms, specifications people search for
|
|
11
|
+
- **Longtail:** Purchase-intent phrases, specific use cases
|
|
12
|
+
|
|
13
|
+
## Template
|
|
14
|
+
|
|
15
|
+
### [Category Name]
|
|
16
|
+
- **Primary:** [main product term] + [industry]
|
|
17
|
+
- **Secondary:** [synonym 1], [synonym 2], [specification term]
|
|
18
|
+
- **Longtail:** "[product] buy", "[product] for [use case]"
|
|
19
|
+
|
|
20
|
+
## Example (Industrial Equipment)
|
|
21
|
+
|
|
22
|
+
### Power Drills
|
|
23
|
+
- **Primary:** power drill industrial, cordless drill professional
|
|
24
|
+
- **Secondary:** drill driver, impact drill, hammer drill, brushless motor
|
|
25
|
+
- **Longtail:** "heavy duty power drill buy", "cordless drill for construction site"
|
|
26
|
+
|
|
27
|
+
### Safety Equipment
|
|
28
|
+
- **Primary:** safety helmet industrial, work gloves professional
|
|
29
|
+
- **Secondary:** PPE, hard hat, cut-resistant gloves, safety goggles
|
|
30
|
+
- **Longtail:** "safety equipment for warehouse buy", "EN 388 gloves"
|
|
31
|
+
|
|
32
|
+
### Hand Tools
|
|
33
|
+
- **Primary:** hand tools professional, wrench set industrial
|
|
34
|
+
- **Secondary:** socket set, torque wrench, pliers, screwdriver set
|
|
35
|
+
- **Longtail:** "professional hand tools for mechanics", "torque wrench buy"
|