@athenaflow/plugin-fullstack-engineering 0.1.1
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/plugin.json +19 -0
- package/.codex-plugin/plugin.json +15 -0
- package/dist/0.1.1/.agents/plugins/marketplace.json +14 -0
- package/dist/0.1.1/GENERATED.md +12 -0
- package/dist/0.1.1/claude/plugin/.claude-plugin/plugin.json +19 -0
- package/dist/0.1.1/claude/plugin/package.json +20 -0
- package/dist/0.1.1/claude/plugin/skills/fullstack-engineering/PHASES.md +111 -0
- package/dist/0.1.1/claude/plugin/skills/fullstack-engineering/SKILL.md +111 -0
- package/dist/0.1.1/claude/plugin/skills/fullstack-engineering/agents/claude.yaml +2 -0
- package/dist/0.1.1/claude/plugin/skills/fullstack-engineering/agents/openai.yaml +4 -0
- package/dist/0.1.1/codex/plugin/.codex-plugin/plugin.json +15 -0
- package/dist/0.1.1/codex/plugin/package.json +20 -0
- package/dist/0.1.1/codex/plugin/skills/fullstack-engineering/PHASES.md +111 -0
- package/dist/0.1.1/codex/plugin/skills/fullstack-engineering/SKILL.md +111 -0
- package/dist/0.1.1/codex/plugin/skills/fullstack-engineering/agents/claude.yaml +2 -0
- package/dist/0.1.1/codex/plugin/skills/fullstack-engineering/agents/openai.yaml +4 -0
- package/dist/0.1.1/release.json +18 -0
- package/package.json +24 -0
- package/skills/fullstack-engineering/PHASES.md +111 -0
- package/skills/fullstack-engineering/SKILL.md +111 -0
- package/skills/fullstack-engineering/agents/claude.yaml +2 -0
- package/skills/fullstack-engineering/agents/openai.yaml +4 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fullstack-engineering",
|
|
3
|
+
"description": "User-invocable companion to the fullstack-engineering Workflow. Ships a single skill that captures the same state machine \u2014 Brainstorm \u2192 Isolate \u2192 Plan \u2192 Execute (TDD + browser pass) \u2192 Manual QA \u2192 Finish \u2014 for on-demand use without running the full Workflow loop.",
|
|
4
|
+
"version": "0.1.1",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Athenaflow"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [
|
|
9
|
+
"fullstack",
|
|
10
|
+
"engineering",
|
|
11
|
+
"workflow",
|
|
12
|
+
"tdd",
|
|
13
|
+
"browser-pass",
|
|
14
|
+
"alignment",
|
|
15
|
+
"phase-gates"
|
|
16
|
+
],
|
|
17
|
+
"category": "engineering",
|
|
18
|
+
"repository": "https://github.com/AthenaFlow/workflow-marketplace"
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fullstack-engineering",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "User-invocable companion to the fullstack-engineering Workflow. Ships a single skill that captures the same state machine \u2014 Brainstorm \u2192 Isolate \u2192 Plan \u2192 Execute (TDD + browser pass) \u2192 Manual QA \u2192 Finish \u2014 for on-demand use without running the full Workflow loop.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Athenaflow"
|
|
7
|
+
},
|
|
8
|
+
"skills": "./skills/",
|
|
9
|
+
"interface": {
|
|
10
|
+
"displayName": "Full-Stack Engineering",
|
|
11
|
+
"shortDescription": "On-demand companion to the fullstack-engineering Workflow",
|
|
12
|
+
"developerName": "Athenaflow",
|
|
13
|
+
"category": "Engineering"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Generated artifacts
|
|
2
|
+
|
|
3
|
+
Built by `scripts/build-plugin-artifacts.mjs` (or `npm run build:artifacts` from `plugins/fullstack-engineering`).
|
|
4
|
+
|
|
5
|
+
**Do not hand-edit any file in this directory.** Edits are clobbered on the next build.
|
|
6
|
+
|
|
7
|
+
Source of truth:
|
|
8
|
+
- Per-plugin Manifests: `../../.claude-plugin/plugin.json`, `../../.codex-plugin/plugin.json`
|
|
9
|
+
- Skills: `../../skills/`
|
|
10
|
+
- Marketplace Registries: repo-root `.claude-plugin/marketplace.json` and `.agents/plugins/marketplace.json`
|
|
11
|
+
|
|
12
|
+
Built version: 0.1.1
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fullstack-engineering",
|
|
3
|
+
"description": "User-invocable companion to the fullstack-engineering Workflow. Ships a single skill that captures the same state machine \u2014 Brainstorm \u2192 Isolate \u2192 Plan \u2192 Execute (TDD + browser pass) \u2192 Manual QA \u2192 Finish \u2014 for on-demand use without running the full Workflow loop.",
|
|
4
|
+
"version": "0.1.1",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Athenaflow"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [
|
|
9
|
+
"fullstack",
|
|
10
|
+
"engineering",
|
|
11
|
+
"workflow",
|
|
12
|
+
"tdd",
|
|
13
|
+
"browser-pass",
|
|
14
|
+
"alignment",
|
|
15
|
+
"phase-gates"
|
|
16
|
+
],
|
|
17
|
+
"category": "engineering",
|
|
18
|
+
"repository": "https://github.com/AthenaFlow/workflow-marketplace"
|
|
19
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@athenaflow/plugin-fullstack-engineering",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "User-invocable companion to the fullstack-engineering Workflow.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/lespaceman/athena-workflow-marketplace.git",
|
|
9
|
+
"directory": "plugins/fullstack-engineering"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
".claude-plugin/",
|
|
16
|
+
".codex-plugin/",
|
|
17
|
+
"skills/",
|
|
18
|
+
"dist/"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Phase pipeline (reference detail)
|
|
2
|
+
|
|
3
|
+
Each phase has: **Entry** (input artifact required to enter), **Do** (the action — invoke the owning skill where one exists; otherwise follow the procedure here), and **Exit** (output artifact required to leave).
|
|
4
|
+
|
|
5
|
+
The inner-loop skills (`grill-with-docs`, `grill-me`, `to-prd`, `to-issues`, `tdd`, `diagnose`, `zoom-out`, `prototype`, `improve-codebase-architecture`, `write-a-skill`) come from Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills) and are used here under their original terms. Browser verification comes from this repo's own `agent-web-interface` plugin.
|
|
6
|
+
|
|
7
|
+
## 1. Brainstorm — `grill-with-docs` (code) or `grill-me` (non-code)
|
|
8
|
+
|
|
9
|
+
- **Entry:** any new request. Treat every request as rough unless an approved design doc / PRD exists on disk or an approved lightweight session plan already exists.
|
|
10
|
+
- **Do:** invoke `grill-with-docs` for code work — it interviews you against the project's domain language (`CONTEXT.md`) and decisions (`docs/adr/`), then updates those docs inline as decisions crystallise. Use `grill-me` for non-code or pure design alignment without doc updates.
|
|
11
|
+
- **Simple-task exit:** approved lightweight session plan stating goal, intended files, verification. No PRD required.
|
|
12
|
+
- **Full-task exit artifact:** approved design document / PRD on disk (often produced by following the grilling session with `to-prd`). Use for ambiguous, multi-step, architectural, user-visible, or risky work.
|
|
13
|
+
- **No code in this phase.**
|
|
14
|
+
- **You are NOT in this phase if:** an approved design doc / PRD or session plan already exists. Move to Phase 2.
|
|
15
|
+
|
|
16
|
+
## 2. Isolate — manual phase
|
|
17
|
+
|
|
18
|
+
There is no Pocock skill for git worktree setup. Run this directly:
|
|
19
|
+
|
|
20
|
+
- **Entry:** approved design doc / PRD, or approved lightweight session plan.
|
|
21
|
+
- **Do:**
|
|
22
|
+
1. `git worktree add ../<repo>-<branch> -b <branch>` from the repo root.
|
|
23
|
+
2. `cd` into the worktree and run project setup (install deps, env files).
|
|
24
|
+
3. Run the full test suite once to confirm a clean **green baseline** before touching anything. If the baseline is red, stop and fix the baseline (or surface to the user) before proceeding.
|
|
25
|
+
- **Exit artifact:** worktree on a new branch with verified green baseline.
|
|
26
|
+
- **Skip rule:** never skip this even for "small" changes. Isolation is what makes the rest of the pipeline safe.
|
|
27
|
+
|
|
28
|
+
## 3. Plan — `to-prd` then `to-issues`
|
|
29
|
+
|
|
30
|
+
- **Entry:** approved design doc / brainstorming output + clean worktree. Simple tasks with a session plan can skip and execute from the session plan.
|
|
31
|
+
- **Do:**
|
|
32
|
+
1. `to-prd` — synthesize the conversation context into a PRD on the project issue tracker. No fresh interview; it captures what was already discussed. Skip if a PRD already exists.
|
|
33
|
+
2. `to-issues` — break the PRD into independently-grabbable issues using tracer-bullet vertical slices. Each issue should be a 2–5 minute task with exact file paths, the complete change, and verification steps.
|
|
34
|
+
- **Exit artifact:** issue list (or plan file) of discrete, independently verifiable tasks.
|
|
35
|
+
- **Skip rule:** "I'll just remember the steps" is not a plan. Write the issues / plan file.
|
|
36
|
+
|
|
37
|
+
## 4. Execute — manual loop, with `tdd` mandatory inside each task
|
|
38
|
+
|
|
39
|
+
- **Entry:** approved plan / issue list on disk, or approved lightweight session plan.
|
|
40
|
+
- **Do:** pick one task at a time. For each task:
|
|
41
|
+
- **TDD via `tdd`:** failing test → watch it fail → minimal code → watch it pass → refactor → commit. Vertical slice per cycle, never horizontal (don't write all tests then all code). Code written before its test gets deleted.
|
|
42
|
+
- **Browser pass via `agent-web-interface` for any user-visible behavior:** load `agent-web-interface:agent-web-interface-guide` first, then exercise against a running dev server. Capture a screenshot/snapshot. Code-level green tests do not substitute. If there is no UI surface yet, say so explicitly — do not silently skip.
|
|
43
|
+
- **Bug surfaces mid-task → `diagnose`:** if something is broken, throwing, failing, or behaving inconsistently, switch into the disciplined diagnosis loop (reproduce → minimise → hypothesise → instrument → fix → regression-test). Do not patch by guessing.
|
|
44
|
+
- **Unfamiliar code → `zoom-out`:** before editing code you do not yet understand, zoom out for the broader context.
|
|
45
|
+
- **Exit per task:** test green + browser-pass artifact (or explicit no-UI declaration) + review findings addressed.
|
|
46
|
+
|
|
47
|
+
## 5. Review — manual phase (between tasks, not a separate phase)
|
|
48
|
+
|
|
49
|
+
There is no Pocock skill for between-task code review. Default approach:
|
|
50
|
+
|
|
51
|
+
- After each task (or end of a small related batch), have the user — or a fresh subagent — read the diff against the task's stated verification.
|
|
52
|
+
- Critical findings block the next task. Lower-severity findings can be tracked and addressed later — but tracked, not forgotten.
|
|
53
|
+
- For codebase-wide drift after several tasks (modules getting tangled, names diverging from `CONTEXT.md`), run `improve-codebase-architecture` to find deepening opportunities and consolidate.
|
|
54
|
+
|
|
55
|
+
## 6. Finish — manual phase
|
|
56
|
+
|
|
57
|
+
There is no Pocock skill for finishing a development branch. Procedure:
|
|
58
|
+
|
|
59
|
+
- **Entry:** all planned tasks complete, tests green, no open critical review issues.
|
|
60
|
+
- **Do:**
|
|
61
|
+
1. Run the full test suite one more time — must be green.
|
|
62
|
+
2. Final `agent-web-interface` browser pass across the whole feature: golden path + every edge case named in the design.
|
|
63
|
+
3. **Default action in this repo: merge locally to `main` and remove the worktree.** Skip the 4-option integration prompt. Only stop and ask the user if: tests fail, the merge has conflicts, the base branch isn't `main`, or the user has explicitly asked for a PR instead.
|
|
64
|
+
4. Destructive fallbacks (discard) still require typed confirmation.
|
|
65
|
+
- **Exit:** branch merged to `main`, worktree cleaned up.
|
|
66
|
+
|
|
67
|
+
## Pinned skills and plugins
|
|
68
|
+
|
|
69
|
+
### Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills) — process discipline
|
|
70
|
+
|
|
71
|
+
These cover the inner loops the workflow leans on. Used under their original terms; credit to Matt Pocock.
|
|
72
|
+
|
|
73
|
+
- `grill-with-docs` — alignment + shared language; interview against `CONTEXT.md` and `docs/adr/` and update both inline. Phase 1 default for code work.
|
|
74
|
+
- `grill-me` — alignment without doc updates. Phase 1 fallback for non-code/simple sessions.
|
|
75
|
+
- `to-prd` — synthesize current conversation into a PRD on the issue tracker. Phase 3 step 1.
|
|
76
|
+
- `to-issues` — break a PRD/plan into vertical-slice issues. Phase 3 step 2.
|
|
77
|
+
- `tdd` — red-green-refactor; vertical slices only. Mandatory inside every Phase 4 task that produces code.
|
|
78
|
+
- `diagnose` — reproduce → minimise → hypothesise → instrument → fix → regression-test. Use whenever a bug surfaces mid-execution.
|
|
79
|
+
- `zoom-out` — broader/system-level context for unfamiliar code. Use before editing code you do not understand.
|
|
80
|
+
- `prototype` — throwaway terminal app or several radically different UI variations to flush out a design before committing. Optional Phase 1 aid.
|
|
81
|
+
- `improve-codebase-architecture` — find deepening opportunities; consolidate tangled modules. Run periodically between tasks; ideal between feature batches.
|
|
82
|
+
- `triage` — issue-tracker state machine when managing a backlog of incoming bugs / feature requests.
|
|
83
|
+
- `write-a-skill` — when authoring or editing a skill (including this one).
|
|
84
|
+
|
|
85
|
+
Skills with no Pocock equivalent (worktree setup, between-task code review, finishing) are run as manual procedures defined per phase above.
|
|
86
|
+
|
|
87
|
+
### `tanstack-start` — frontend/full-stack framework knowledge
|
|
88
|
+
|
|
89
|
+
Use whenever the task involves TanStack Start, TanStack Router, server functions, server routes, SSR, RSC, or migrating from Next.js. Core skill: `tanstack-start:tanstack-start-guide`. Domain-specific skills under `skills/upstream/@tanstack/...` cover routing, Start internals, the router plugin, virtual file routes, and React Server Components. Consult these before hand-rolling routing or data patterns.
|
|
90
|
+
|
|
91
|
+
### `frontend-design` — UI quality and product-facing design
|
|
92
|
+
|
|
93
|
+
Use whenever the task includes a user-visible screen, flow, layout, interaction pattern, or visual state. Load before making UI decisions so the implementation has deliberate hierarchy, responsive behavior, accessibility, and domain-appropriate visual polish instead of framework-default screens.
|
|
94
|
+
|
|
95
|
+
### `shadcn` — component library and design system
|
|
96
|
+
|
|
97
|
+
Use whenever UI work needs accessible primitives, form patterns, theming, or registry components. Skill: `shadcn:shadcn-ui`. Prefer installing from the shadcn registry over hand-writing button/input/dialog primitives.
|
|
98
|
+
|
|
99
|
+
### `agent-web-interface` — live browser interaction (mandatory test layer)
|
|
100
|
+
|
|
101
|
+
Required test layer for anything user-visible. Every Phase 4 task that builds or modifies UI, a route, a server function exposed to the browser, an API consumed by the UI, or any end-to-end flow MUST be exercised against a running dev server through `mcp__plugin_agent-web-interface_browser__*` tools before being considered done. Unit and integration tests do not substitute.
|
|
102
|
+
|
|
103
|
+
Skill: `agent-web-interface:agent-web-interface-guide`. **Load it BEFORE any `mcp__plugin_agent-web-interface_browser__*` tool call** so observations are structured and selectors are stable.
|
|
104
|
+
|
|
105
|
+
Use it to walk the golden path, exercise edge cases and error states named in the design, capture a screenshot/snapshot as the task's verification artifact, and spot regressions in adjacent flows the change could plausibly affect.
|
|
106
|
+
|
|
107
|
+
If the app cannot be exercised this way (no dev server, pure backend with no client yet), say so explicitly in the verification step — do not silently skip the browser pass.
|
|
108
|
+
|
|
109
|
+
## Attribution
|
|
110
|
+
|
|
111
|
+
The inner-loop process discipline in this skill is adapted from **Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills)**. The phase scaffolding (Brainstorm → Isolate → Plan → Execute → Review → Finish) and the mandatory browser-pass test layer (`agent-web-interface`) are this repo's own. All trademarks and links are property of their respective owners.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fullstack-engineering
|
|
3
|
+
description: End-to-end engineering workflow as a state machine - Brainstorm → Isolate → Plan → Execute (TDD + browser pass) → Review → Finish. Each phase has a required input and exit artifact on disk. Use when starting any non-trivial feature, bug fix, or refactor; when the user wants disciplined process with phase gates, design docs, plan files, worktrees, TDD, and browser verification; when they say "fullstack engineering", "follow the workflow", "do this properly end to end", or coordinate brainstorming + planning + execution together. Not for one-line edits, doc tweaks, or read-only investigation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Full-Stack Engineering
|
|
7
|
+
|
|
8
|
+
A state machine, not a suggestion. Each phase has a required input artifact and exit artifact, both on disk. **You may not act outside the current phase.** If you are about to take an action that does not match your current phase, STOP and re-enter the correct phase first.
|
|
9
|
+
|
|
10
|
+
If you think there is even a 1% chance you are skipping a phase, you are skipping a phase.
|
|
11
|
+
|
|
12
|
+
The skill leans on Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills) for the inner loops (alignment, planning, TDD, diagnosis). See [PHASES.md](PHASES.md) for full attribution.
|
|
13
|
+
|
|
14
|
+
## The only thing you do every turn
|
|
15
|
+
|
|
16
|
+
Before any other tool call, every single turn, run the **Phase Detector** and announce the result. No exceptions — not for "quick" edits, not for "obvious" fixes, not for "just one file", not even for clarifying questions that touch code.
|
|
17
|
+
|
|
18
|
+
### Phase Detector (run first, every turn)
|
|
19
|
+
|
|
20
|
+
Check artifacts on disk in this exact order. The **first** matching row tells you the phase.
|
|
21
|
+
|
|
22
|
+
For simple, low-risk tasks, a lightweight planning session may satisfy Phase 1 — record the brief plan in the session naming the task, intended files, and verification. Use a full design doc and plan file for anything ambiguous, multi-step, architectural, user-visible, or risky.
|
|
23
|
+
|
|
24
|
+
| Check (in order) | Phase | Owning skill |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| All planned tasks done + tests green + integration option not chosen yet | **6. Finish** | (no skill — see PHASES.md) |
|
|
27
|
+
| Plan file / issue list exists with incomplete tasks | **4. Execute** (+ Review between tasks) | `tdd` per task; `diagnose` if a bug surfaces |
|
|
28
|
+
| Approved lightweight session plan + worktree exists | **4. Execute** | `tdd` per task |
|
|
29
|
+
| Approved design doc / PRD + worktree + no plan file | **3. Plan** | `to-prd` then `to-issues` |
|
|
30
|
+
| Approved design doc + no worktree | **2. Isolate** | (no skill — see PHASES.md) |
|
|
31
|
+
| Approved lightweight session plan + no worktree | **2. Isolate** | (no skill — see PHASES.md) |
|
|
32
|
+
| Anything else (new request, vague idea, no approved plan/design) | **1. Brainstorm** | `grill-with-docs` (code) or `grill-me` (non-code) |
|
|
33
|
+
|
|
34
|
+
Announce, in one line, before any other tool call:
|
|
35
|
+
`Phase: <N. Name> — invoking <skill or "manual phase">. Artifacts seen: <what you found>.`
|
|
36
|
+
|
|
37
|
+
When a phase has an owning skill, invoke it via the Skill tool before doing anything else. When a phase has no owning skill (Isolate, Finish), follow the procedure in [PHASES.md](PHASES.md) directly.
|
|
38
|
+
|
|
39
|
+
## Hard rules (override everything else)
|
|
40
|
+
|
|
41
|
+
1. **No code without an approved design doc / PRD or lightweight session plan.** If `Edit`/`Write`/`MultiEdit` is about to touch source files and neither exists, you are in Phase 1, not Phase 4.
|
|
42
|
+
2. **No code without a plan.** Full tasks → plan file or issue list on disk. Simple tasks → approved session plan naming task, files, verification.
|
|
43
|
+
3. **No production code outside an active TDD cycle.** Failing test first, watch it fail, then minimum code to pass. Code written before its test gets deleted. (Use `tdd`.)
|
|
44
|
+
4. **No "done" claim on user-visible work without a browser pass.** A screenshot or page snapshot from `mcp__plugin_agent-web-interface_browser__*` is the only acceptable proof. "Tests pass" is not proof.
|
|
45
|
+
5. **Critical review findings block the next task.** Fix before advancing.
|
|
46
|
+
6. **New scope means a new Brainstorm.** No expanding scope mid-execution. (Re-enter `grill-with-docs`.)
|
|
47
|
+
7. **Surface blockers, do not guess.** Missing creds, decisions, or access → stop and ask.
|
|
48
|
+
|
|
49
|
+
Violating any of these is a workflow failure, not a shortcut.
|
|
50
|
+
|
|
51
|
+
## Red-flag thoughts — these mean STOP
|
|
52
|
+
|
|
53
|
+
If any of these appear, you are about to skip a phase.
|
|
54
|
+
|
|
55
|
+
| Thought | Why it's wrong |
|
|
56
|
+
|---|---|
|
|
57
|
+
| "Small change, I'll just edit it." | Small changes still need a planning session. |
|
|
58
|
+
| "I already know the design." | If it's not on disk and approved, it's a guess. Run `grill-with-docs`. |
|
|
59
|
+
| "Let me explore the codebase first." | Exploration belongs inside Brainstorm or Plan. Use `zoom-out` for unfamiliar code. |
|
|
60
|
+
| "I'll write the test after I see if it works." | Not TDD. Test first. Code without a prior test gets deleted. |
|
|
61
|
+
| "Unit tests pass, task is done." | User-visible tasks need a browser-pass artifact. |
|
|
62
|
+
| "I'll fix this critical finding next task." | Critical findings block forward motion. |
|
|
63
|
+
| "User just wants me to do X, not follow process." | They installed this workflow on purpose. |
|
|
64
|
+
| "I'll add this related improvement while I'm here." | New scope = new Brainstorm. |
|
|
65
|
+
| "I'll answer their question quickly without a skill." | Phase Detector runs even for questions. |
|
|
66
|
+
|
|
67
|
+
## Phase decision flow
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
┌─────────────────────────────┐
|
|
71
|
+
│ New turn — run Phase │
|
|
72
|
+
│ Detector (artifacts on │
|
|
73
|
+
│ disk decide the phase) │
|
|
74
|
+
└──────────────┬──────────────┘
|
|
75
|
+
│
|
|
76
|
+
┌──────────────────────┼──────────────────────┐
|
|
77
|
+
│ │ │
|
|
78
|
+
no approved design/plan + plan file or
|
|
79
|
+
plan/design? no worktree? tasks remaining?
|
|
80
|
+
│ │ │
|
|
81
|
+
▼ ▼ ▼
|
|
82
|
+
Phase 1: Brainstorm Phase 2: Isolate Phase 4: Execute
|
|
83
|
+
(grill-with-docs (manual: worktree (tdd per task;
|
|
84
|
+
/ grill-me) + green baseline) diagnose on bugs;
|
|
85
|
+
browser pass via
|
|
86
|
+
agent-web-interface)
|
|
87
|
+
│
|
|
88
|
+
▼
|
|
89
|
+
all done +
|
|
90
|
+
tests green
|
|
91
|
+
│
|
|
92
|
+
▼
|
|
93
|
+
Phase 6: Finish
|
|
94
|
+
(manual: merge to
|
|
95
|
+
main + cleanup)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## When you cannot proceed
|
|
99
|
+
|
|
100
|
+
If a phase is blocked by missing requirements, credentials, environment access, or a user decision: **stop with the exact blocker and the next required input.** Do not skip ahead. Do not guess. Stuck-and-asking is a correct state; pretending-to-progress is not.
|
|
101
|
+
|
|
102
|
+
## Self-check before every tool call
|
|
103
|
+
|
|
104
|
+
Before any tool call other than the Skill tool invoking the phase's owning skill (or, for skill-less phases, the first action of that phase):
|
|
105
|
+
|
|
106
|
+
1. Did I run the Phase Detector this turn?
|
|
107
|
+
2. Did I announce the phase?
|
|
108
|
+
3. Did I invoke the owning skill (or follow PHASES.md for skill-less phases)?
|
|
109
|
+
4. Is the tool I'm about to call something that phase would actually have me do right now?
|
|
110
|
+
|
|
111
|
+
If any answer is no, stop and fix it.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Full-Stack Engineering"
|
|
3
|
+
short_description: "On-demand companion to the fullstack-engineering Workflow — same state machine, invoked once instead of looped"
|
|
4
|
+
default_prompt: "Walk me through the fullstack-engineering state machine for this change: foundation check, alignment, isolate, plan, execute (TDD + browser pass), review, manual QA, finish."
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fullstack-engineering",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "User-invocable companion to the fullstack-engineering Workflow. Ships a single skill that captures the same state machine \u2014 Brainstorm \u2192 Isolate \u2192 Plan \u2192 Execute (TDD + browser pass) \u2192 Manual QA \u2192 Finish \u2014 for on-demand use without running the full Workflow loop.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Athenaflow"
|
|
7
|
+
},
|
|
8
|
+
"skills": "./skills/",
|
|
9
|
+
"interface": {
|
|
10
|
+
"displayName": "Full-Stack Engineering",
|
|
11
|
+
"shortDescription": "On-demand companion to the fullstack-engineering Workflow",
|
|
12
|
+
"developerName": "Athenaflow",
|
|
13
|
+
"category": "Engineering"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@athenaflow/plugin-fullstack-engineering",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "User-invocable companion to the fullstack-engineering Workflow.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/lespaceman/athena-workflow-marketplace.git",
|
|
9
|
+
"directory": "plugins/fullstack-engineering"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
".claude-plugin/",
|
|
16
|
+
".codex-plugin/",
|
|
17
|
+
"skills/",
|
|
18
|
+
"dist/"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Phase pipeline (reference detail)
|
|
2
|
+
|
|
3
|
+
Each phase has: **Entry** (input artifact required to enter), **Do** (the action — invoke the owning skill where one exists; otherwise follow the procedure here), and **Exit** (output artifact required to leave).
|
|
4
|
+
|
|
5
|
+
The inner-loop skills (`grill-with-docs`, `grill-me`, `to-prd`, `to-issues`, `tdd`, `diagnose`, `zoom-out`, `prototype`, `improve-codebase-architecture`, `write-a-skill`) come from Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills) and are used here under their original terms. Browser verification comes from this repo's own `agent-web-interface` plugin.
|
|
6
|
+
|
|
7
|
+
## 1. Brainstorm — `grill-with-docs` (code) or `grill-me` (non-code)
|
|
8
|
+
|
|
9
|
+
- **Entry:** any new request. Treat every request as rough unless an approved design doc / PRD exists on disk or an approved lightweight session plan already exists.
|
|
10
|
+
- **Do:** invoke `grill-with-docs` for code work — it interviews you against the project's domain language (`CONTEXT.md`) and decisions (`docs/adr/`), then updates those docs inline as decisions crystallise. Use `grill-me` for non-code or pure design alignment without doc updates.
|
|
11
|
+
- **Simple-task exit:** approved lightweight session plan stating goal, intended files, verification. No PRD required.
|
|
12
|
+
- **Full-task exit artifact:** approved design document / PRD on disk (often produced by following the grilling session with `to-prd`). Use for ambiguous, multi-step, architectural, user-visible, or risky work.
|
|
13
|
+
- **No code in this phase.**
|
|
14
|
+
- **You are NOT in this phase if:** an approved design doc / PRD or session plan already exists. Move to Phase 2.
|
|
15
|
+
|
|
16
|
+
## 2. Isolate — manual phase
|
|
17
|
+
|
|
18
|
+
There is no Pocock skill for git worktree setup. Run this directly:
|
|
19
|
+
|
|
20
|
+
- **Entry:** approved design doc / PRD, or approved lightweight session plan.
|
|
21
|
+
- **Do:**
|
|
22
|
+
1. `git worktree add ../<repo>-<branch> -b <branch>` from the repo root.
|
|
23
|
+
2. `cd` into the worktree and run project setup (install deps, env files).
|
|
24
|
+
3. Run the full test suite once to confirm a clean **green baseline** before touching anything. If the baseline is red, stop and fix the baseline (or surface to the user) before proceeding.
|
|
25
|
+
- **Exit artifact:** worktree on a new branch with verified green baseline.
|
|
26
|
+
- **Skip rule:** never skip this even for "small" changes. Isolation is what makes the rest of the pipeline safe.
|
|
27
|
+
|
|
28
|
+
## 3. Plan — `to-prd` then `to-issues`
|
|
29
|
+
|
|
30
|
+
- **Entry:** approved design doc / brainstorming output + clean worktree. Simple tasks with a session plan can skip and execute from the session plan.
|
|
31
|
+
- **Do:**
|
|
32
|
+
1. `to-prd` — synthesize the conversation context into a PRD on the project issue tracker. No fresh interview; it captures what was already discussed. Skip if a PRD already exists.
|
|
33
|
+
2. `to-issues` — break the PRD into independently-grabbable issues using tracer-bullet vertical slices. Each issue should be a 2–5 minute task with exact file paths, the complete change, and verification steps.
|
|
34
|
+
- **Exit artifact:** issue list (or plan file) of discrete, independently verifiable tasks.
|
|
35
|
+
- **Skip rule:** "I'll just remember the steps" is not a plan. Write the issues / plan file.
|
|
36
|
+
|
|
37
|
+
## 4. Execute — manual loop, with `tdd` mandatory inside each task
|
|
38
|
+
|
|
39
|
+
- **Entry:** approved plan / issue list on disk, or approved lightweight session plan.
|
|
40
|
+
- **Do:** pick one task at a time. For each task:
|
|
41
|
+
- **TDD via `tdd`:** failing test → watch it fail → minimal code → watch it pass → refactor → commit. Vertical slice per cycle, never horizontal (don't write all tests then all code). Code written before its test gets deleted.
|
|
42
|
+
- **Browser pass via `agent-web-interface` for any user-visible behavior:** load `agent-web-interface:agent-web-interface-guide` first, then exercise against a running dev server. Capture a screenshot/snapshot. Code-level green tests do not substitute. If there is no UI surface yet, say so explicitly — do not silently skip.
|
|
43
|
+
- **Bug surfaces mid-task → `diagnose`:** if something is broken, throwing, failing, or behaving inconsistently, switch into the disciplined diagnosis loop (reproduce → minimise → hypothesise → instrument → fix → regression-test). Do not patch by guessing.
|
|
44
|
+
- **Unfamiliar code → `zoom-out`:** before editing code you do not yet understand, zoom out for the broader context.
|
|
45
|
+
- **Exit per task:** test green + browser-pass artifact (or explicit no-UI declaration) + review findings addressed.
|
|
46
|
+
|
|
47
|
+
## 5. Review — manual phase (between tasks, not a separate phase)
|
|
48
|
+
|
|
49
|
+
There is no Pocock skill for between-task code review. Default approach:
|
|
50
|
+
|
|
51
|
+
- After each task (or end of a small related batch), have the user — or a fresh subagent — read the diff against the task's stated verification.
|
|
52
|
+
- Critical findings block the next task. Lower-severity findings can be tracked and addressed later — but tracked, not forgotten.
|
|
53
|
+
- For codebase-wide drift after several tasks (modules getting tangled, names diverging from `CONTEXT.md`), run `improve-codebase-architecture` to find deepening opportunities and consolidate.
|
|
54
|
+
|
|
55
|
+
## 6. Finish — manual phase
|
|
56
|
+
|
|
57
|
+
There is no Pocock skill for finishing a development branch. Procedure:
|
|
58
|
+
|
|
59
|
+
- **Entry:** all planned tasks complete, tests green, no open critical review issues.
|
|
60
|
+
- **Do:**
|
|
61
|
+
1. Run the full test suite one more time — must be green.
|
|
62
|
+
2. Final `agent-web-interface` browser pass across the whole feature: golden path + every edge case named in the design.
|
|
63
|
+
3. **Default action in this repo: merge locally to `main` and remove the worktree.** Skip the 4-option integration prompt. Only stop and ask the user if: tests fail, the merge has conflicts, the base branch isn't `main`, or the user has explicitly asked for a PR instead.
|
|
64
|
+
4. Destructive fallbacks (discard) still require typed confirmation.
|
|
65
|
+
- **Exit:** branch merged to `main`, worktree cleaned up.
|
|
66
|
+
|
|
67
|
+
## Pinned skills and plugins
|
|
68
|
+
|
|
69
|
+
### Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills) — process discipline
|
|
70
|
+
|
|
71
|
+
These cover the inner loops the workflow leans on. Used under their original terms; credit to Matt Pocock.
|
|
72
|
+
|
|
73
|
+
- `grill-with-docs` — alignment + shared language; interview against `CONTEXT.md` and `docs/adr/` and update both inline. Phase 1 default for code work.
|
|
74
|
+
- `grill-me` — alignment without doc updates. Phase 1 fallback for non-code/simple sessions.
|
|
75
|
+
- `to-prd` — synthesize current conversation into a PRD on the issue tracker. Phase 3 step 1.
|
|
76
|
+
- `to-issues` — break a PRD/plan into vertical-slice issues. Phase 3 step 2.
|
|
77
|
+
- `tdd` — red-green-refactor; vertical slices only. Mandatory inside every Phase 4 task that produces code.
|
|
78
|
+
- `diagnose` — reproduce → minimise → hypothesise → instrument → fix → regression-test. Use whenever a bug surfaces mid-execution.
|
|
79
|
+
- `zoom-out` — broader/system-level context for unfamiliar code. Use before editing code you do not understand.
|
|
80
|
+
- `prototype` — throwaway terminal app or several radically different UI variations to flush out a design before committing. Optional Phase 1 aid.
|
|
81
|
+
- `improve-codebase-architecture` — find deepening opportunities; consolidate tangled modules. Run periodically between tasks; ideal between feature batches.
|
|
82
|
+
- `triage` — issue-tracker state machine when managing a backlog of incoming bugs / feature requests.
|
|
83
|
+
- `write-a-skill` — when authoring or editing a skill (including this one).
|
|
84
|
+
|
|
85
|
+
Skills with no Pocock equivalent (worktree setup, between-task code review, finishing) are run as manual procedures defined per phase above.
|
|
86
|
+
|
|
87
|
+
### `tanstack-start` — frontend/full-stack framework knowledge
|
|
88
|
+
|
|
89
|
+
Use whenever the task involves TanStack Start, TanStack Router, server functions, server routes, SSR, RSC, or migrating from Next.js. Core skill: `tanstack-start:tanstack-start-guide`. Domain-specific skills under `skills/upstream/@tanstack/...` cover routing, Start internals, the router plugin, virtual file routes, and React Server Components. Consult these before hand-rolling routing or data patterns.
|
|
90
|
+
|
|
91
|
+
### `frontend-design` — UI quality and product-facing design
|
|
92
|
+
|
|
93
|
+
Use whenever the task includes a user-visible screen, flow, layout, interaction pattern, or visual state. Load before making UI decisions so the implementation has deliberate hierarchy, responsive behavior, accessibility, and domain-appropriate visual polish instead of framework-default screens.
|
|
94
|
+
|
|
95
|
+
### `shadcn` — component library and design system
|
|
96
|
+
|
|
97
|
+
Use whenever UI work needs accessible primitives, form patterns, theming, or registry components. Skill: `shadcn:shadcn-ui`. Prefer installing from the shadcn registry over hand-writing button/input/dialog primitives.
|
|
98
|
+
|
|
99
|
+
### `agent-web-interface` — live browser interaction (mandatory test layer)
|
|
100
|
+
|
|
101
|
+
Required test layer for anything user-visible. Every Phase 4 task that builds or modifies UI, a route, a server function exposed to the browser, an API consumed by the UI, or any end-to-end flow MUST be exercised against a running dev server through `mcp__plugin_agent-web-interface_browser__*` tools before being considered done. Unit and integration tests do not substitute.
|
|
102
|
+
|
|
103
|
+
Skill: `agent-web-interface:agent-web-interface-guide`. **Load it BEFORE any `mcp__plugin_agent-web-interface_browser__*` tool call** so observations are structured and selectors are stable.
|
|
104
|
+
|
|
105
|
+
Use it to walk the golden path, exercise edge cases and error states named in the design, capture a screenshot/snapshot as the task's verification artifact, and spot regressions in adjacent flows the change could plausibly affect.
|
|
106
|
+
|
|
107
|
+
If the app cannot be exercised this way (no dev server, pure backend with no client yet), say so explicitly in the verification step — do not silently skip the browser pass.
|
|
108
|
+
|
|
109
|
+
## Attribution
|
|
110
|
+
|
|
111
|
+
The inner-loop process discipline in this skill is adapted from **Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills)**. The phase scaffolding (Brainstorm → Isolate → Plan → Execute → Review → Finish) and the mandatory browser-pass test layer (`agent-web-interface`) are this repo's own. All trademarks and links are property of their respective owners.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fullstack-engineering
|
|
3
|
+
description: End-to-end engineering workflow as a state machine - Brainstorm → Isolate → Plan → Execute (TDD + browser pass) → Review → Finish. Each phase has a required input and exit artifact on disk. Use when starting any non-trivial feature, bug fix, or refactor; when the user wants disciplined process with phase gates, design docs, plan files, worktrees, TDD, and browser verification; when they say "fullstack engineering", "follow the workflow", "do this properly end to end", or coordinate brainstorming + planning + execution together. Not for one-line edits, doc tweaks, or read-only investigation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Full-Stack Engineering
|
|
7
|
+
|
|
8
|
+
A state machine, not a suggestion. Each phase has a required input artifact and exit artifact, both on disk. **You may not act outside the current phase.** If you are about to take an action that does not match your current phase, STOP and re-enter the correct phase first.
|
|
9
|
+
|
|
10
|
+
If you think there is even a 1% chance you are skipping a phase, you are skipping a phase.
|
|
11
|
+
|
|
12
|
+
The skill leans on Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills) for the inner loops (alignment, planning, TDD, diagnosis). See [PHASES.md](PHASES.md) for full attribution.
|
|
13
|
+
|
|
14
|
+
## The only thing you do every turn
|
|
15
|
+
|
|
16
|
+
Before any other tool call, every single turn, run the **Phase Detector** and announce the result. No exceptions — not for "quick" edits, not for "obvious" fixes, not for "just one file", not even for clarifying questions that touch code.
|
|
17
|
+
|
|
18
|
+
### Phase Detector (run first, every turn)
|
|
19
|
+
|
|
20
|
+
Check artifacts on disk in this exact order. The **first** matching row tells you the phase.
|
|
21
|
+
|
|
22
|
+
For simple, low-risk tasks, a lightweight planning session may satisfy Phase 1 — record the brief plan in the session naming the task, intended files, and verification. Use a full design doc and plan file for anything ambiguous, multi-step, architectural, user-visible, or risky.
|
|
23
|
+
|
|
24
|
+
| Check (in order) | Phase | Owning skill |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| All planned tasks done + tests green + integration option not chosen yet | **6. Finish** | (no skill — see PHASES.md) |
|
|
27
|
+
| Plan file / issue list exists with incomplete tasks | **4. Execute** (+ Review between tasks) | `tdd` per task; `diagnose` if a bug surfaces |
|
|
28
|
+
| Approved lightweight session plan + worktree exists | **4. Execute** | `tdd` per task |
|
|
29
|
+
| Approved design doc / PRD + worktree + no plan file | **3. Plan** | `to-prd` then `to-issues` |
|
|
30
|
+
| Approved design doc + no worktree | **2. Isolate** | (no skill — see PHASES.md) |
|
|
31
|
+
| Approved lightweight session plan + no worktree | **2. Isolate** | (no skill — see PHASES.md) |
|
|
32
|
+
| Anything else (new request, vague idea, no approved plan/design) | **1. Brainstorm** | `grill-with-docs` (code) or `grill-me` (non-code) |
|
|
33
|
+
|
|
34
|
+
Announce, in one line, before any other tool call:
|
|
35
|
+
`Phase: <N. Name> — invoking <skill or "manual phase">. Artifacts seen: <what you found>.`
|
|
36
|
+
|
|
37
|
+
When a phase has an owning skill, invoke it via the Skill tool before doing anything else. When a phase has no owning skill (Isolate, Finish), follow the procedure in [PHASES.md](PHASES.md) directly.
|
|
38
|
+
|
|
39
|
+
## Hard rules (override everything else)
|
|
40
|
+
|
|
41
|
+
1. **No code without an approved design doc / PRD or lightweight session plan.** If `Edit`/`Write`/`MultiEdit` is about to touch source files and neither exists, you are in Phase 1, not Phase 4.
|
|
42
|
+
2. **No code without a plan.** Full tasks → plan file or issue list on disk. Simple tasks → approved session plan naming task, files, verification.
|
|
43
|
+
3. **No production code outside an active TDD cycle.** Failing test first, watch it fail, then minimum code to pass. Code written before its test gets deleted. (Use `tdd`.)
|
|
44
|
+
4. **No "done" claim on user-visible work without a browser pass.** A screenshot or page snapshot from `mcp__plugin_agent-web-interface_browser__*` is the only acceptable proof. "Tests pass" is not proof.
|
|
45
|
+
5. **Critical review findings block the next task.** Fix before advancing.
|
|
46
|
+
6. **New scope means a new Brainstorm.** No expanding scope mid-execution. (Re-enter `grill-with-docs`.)
|
|
47
|
+
7. **Surface blockers, do not guess.** Missing creds, decisions, or access → stop and ask.
|
|
48
|
+
|
|
49
|
+
Violating any of these is a workflow failure, not a shortcut.
|
|
50
|
+
|
|
51
|
+
## Red-flag thoughts — these mean STOP
|
|
52
|
+
|
|
53
|
+
If any of these appear, you are about to skip a phase.
|
|
54
|
+
|
|
55
|
+
| Thought | Why it's wrong |
|
|
56
|
+
|---|---|
|
|
57
|
+
| "Small change, I'll just edit it." | Small changes still need a planning session. |
|
|
58
|
+
| "I already know the design." | If it's not on disk and approved, it's a guess. Run `grill-with-docs`. |
|
|
59
|
+
| "Let me explore the codebase first." | Exploration belongs inside Brainstorm or Plan. Use `zoom-out` for unfamiliar code. |
|
|
60
|
+
| "I'll write the test after I see if it works." | Not TDD. Test first. Code without a prior test gets deleted. |
|
|
61
|
+
| "Unit tests pass, task is done." | User-visible tasks need a browser-pass artifact. |
|
|
62
|
+
| "I'll fix this critical finding next task." | Critical findings block forward motion. |
|
|
63
|
+
| "User just wants me to do X, not follow process." | They installed this workflow on purpose. |
|
|
64
|
+
| "I'll add this related improvement while I'm here." | New scope = new Brainstorm. |
|
|
65
|
+
| "I'll answer their question quickly without a skill." | Phase Detector runs even for questions. |
|
|
66
|
+
|
|
67
|
+
## Phase decision flow
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
┌─────────────────────────────┐
|
|
71
|
+
│ New turn — run Phase │
|
|
72
|
+
│ Detector (artifacts on │
|
|
73
|
+
│ disk decide the phase) │
|
|
74
|
+
└──────────────┬──────────────┘
|
|
75
|
+
│
|
|
76
|
+
┌──────────────────────┼──────────────────────┐
|
|
77
|
+
│ │ │
|
|
78
|
+
no approved design/plan + plan file or
|
|
79
|
+
plan/design? no worktree? tasks remaining?
|
|
80
|
+
│ │ │
|
|
81
|
+
▼ ▼ ▼
|
|
82
|
+
Phase 1: Brainstorm Phase 2: Isolate Phase 4: Execute
|
|
83
|
+
(grill-with-docs (manual: worktree (tdd per task;
|
|
84
|
+
/ grill-me) + green baseline) diagnose on bugs;
|
|
85
|
+
browser pass via
|
|
86
|
+
agent-web-interface)
|
|
87
|
+
│
|
|
88
|
+
▼
|
|
89
|
+
all done +
|
|
90
|
+
tests green
|
|
91
|
+
│
|
|
92
|
+
▼
|
|
93
|
+
Phase 6: Finish
|
|
94
|
+
(manual: merge to
|
|
95
|
+
main + cleanup)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## When you cannot proceed
|
|
99
|
+
|
|
100
|
+
If a phase is blocked by missing requirements, credentials, environment access, or a user decision: **stop with the exact blocker and the next required input.** Do not skip ahead. Do not guess. Stuck-and-asking is a correct state; pretending-to-progress is not.
|
|
101
|
+
|
|
102
|
+
## Self-check before every tool call
|
|
103
|
+
|
|
104
|
+
Before any tool call other than the Skill tool invoking the phase's owning skill (or, for skill-less phases, the first action of that phase):
|
|
105
|
+
|
|
106
|
+
1. Did I run the Phase Detector this turn?
|
|
107
|
+
2. Did I announce the phase?
|
|
108
|
+
3. Did I invoke the owning skill (or follow PHASES.md for skill-less phases)?
|
|
109
|
+
4. Is the tool I'm about to call something that phase would actually have me do right now?
|
|
110
|
+
|
|
111
|
+
If any answer is no, stop and fix it.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Full-Stack Engineering"
|
|
3
|
+
short_description: "On-demand companion to the fullstack-engineering Workflow — same state machine, invoked once instead of looped"
|
|
4
|
+
default_prompt: "Walk me through the fullstack-engineering state machine for this change: foundation check, alignment, isolate, plan, execute (TDD + browser pass), review, manual QA, finish."
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"pluginRef": "fullstack-engineering@athena-workflow-marketplace",
|
|
4
|
+
"pluginName": "fullstack-engineering",
|
|
5
|
+
"marketplaceName": "athena-workflow-marketplace",
|
|
6
|
+
"version": "0.1.1",
|
|
7
|
+
"artifacts": {
|
|
8
|
+
"claude": {
|
|
9
|
+
"type": "directory",
|
|
10
|
+
"path": "./claude/plugin"
|
|
11
|
+
},
|
|
12
|
+
"codex": {
|
|
13
|
+
"type": "marketplace",
|
|
14
|
+
"marketplacePath": "./.agents/plugins/marketplace.json",
|
|
15
|
+
"pluginPath": "./codex/plugin"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@athenaflow/plugin-fullstack-engineering",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "User-invocable companion to the fullstack-engineering Workflow.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/lespaceman/athena-workflow-marketplace.git",
|
|
9
|
+
"directory": "plugins/fullstack-engineering"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
".claude-plugin/",
|
|
16
|
+
".codex-plugin/",
|
|
17
|
+
"skills/",
|
|
18
|
+
"dist/"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build:artifacts": "node ../../scripts/build-plugin-artifacts.mjs .",
|
|
22
|
+
"prepack": "npm run build:artifacts"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Phase pipeline (reference detail)
|
|
2
|
+
|
|
3
|
+
Each phase has: **Entry** (input artifact required to enter), **Do** (the action — invoke the owning skill where one exists; otherwise follow the procedure here), and **Exit** (output artifact required to leave).
|
|
4
|
+
|
|
5
|
+
The inner-loop skills (`grill-with-docs`, `grill-me`, `to-prd`, `to-issues`, `tdd`, `diagnose`, `zoom-out`, `prototype`, `improve-codebase-architecture`, `write-a-skill`) come from Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills) and are used here under their original terms. Browser verification comes from this repo's own `agent-web-interface` plugin.
|
|
6
|
+
|
|
7
|
+
## 1. Brainstorm — `grill-with-docs` (code) or `grill-me` (non-code)
|
|
8
|
+
|
|
9
|
+
- **Entry:** any new request. Treat every request as rough unless an approved design doc / PRD exists on disk or an approved lightweight session plan already exists.
|
|
10
|
+
- **Do:** invoke `grill-with-docs` for code work — it interviews you against the project's domain language (`CONTEXT.md`) and decisions (`docs/adr/`), then updates those docs inline as decisions crystallise. Use `grill-me` for non-code or pure design alignment without doc updates.
|
|
11
|
+
- **Simple-task exit:** approved lightweight session plan stating goal, intended files, verification. No PRD required.
|
|
12
|
+
- **Full-task exit artifact:** approved design document / PRD on disk (often produced by following the grilling session with `to-prd`). Use for ambiguous, multi-step, architectural, user-visible, or risky work.
|
|
13
|
+
- **No code in this phase.**
|
|
14
|
+
- **You are NOT in this phase if:** an approved design doc / PRD or session plan already exists. Move to Phase 2.
|
|
15
|
+
|
|
16
|
+
## 2. Isolate — manual phase
|
|
17
|
+
|
|
18
|
+
There is no Pocock skill for git worktree setup. Run this directly:
|
|
19
|
+
|
|
20
|
+
- **Entry:** approved design doc / PRD, or approved lightweight session plan.
|
|
21
|
+
- **Do:**
|
|
22
|
+
1. `git worktree add ../<repo>-<branch> -b <branch>` from the repo root.
|
|
23
|
+
2. `cd` into the worktree and run project setup (install deps, env files).
|
|
24
|
+
3. Run the full test suite once to confirm a clean **green baseline** before touching anything. If the baseline is red, stop and fix the baseline (or surface to the user) before proceeding.
|
|
25
|
+
- **Exit artifact:** worktree on a new branch with verified green baseline.
|
|
26
|
+
- **Skip rule:** never skip this even for "small" changes. Isolation is what makes the rest of the pipeline safe.
|
|
27
|
+
|
|
28
|
+
## 3. Plan — `to-prd` then `to-issues`
|
|
29
|
+
|
|
30
|
+
- **Entry:** approved design doc / brainstorming output + clean worktree. Simple tasks with a session plan can skip and execute from the session plan.
|
|
31
|
+
- **Do:**
|
|
32
|
+
1. `to-prd` — synthesize the conversation context into a PRD on the project issue tracker. No fresh interview; it captures what was already discussed. Skip if a PRD already exists.
|
|
33
|
+
2. `to-issues` — break the PRD into independently-grabbable issues using tracer-bullet vertical slices. Each issue should be a 2–5 minute task with exact file paths, the complete change, and verification steps.
|
|
34
|
+
- **Exit artifact:** issue list (or plan file) of discrete, independently verifiable tasks.
|
|
35
|
+
- **Skip rule:** "I'll just remember the steps" is not a plan. Write the issues / plan file.
|
|
36
|
+
|
|
37
|
+
## 4. Execute — manual loop, with `tdd` mandatory inside each task
|
|
38
|
+
|
|
39
|
+
- **Entry:** approved plan / issue list on disk, or approved lightweight session plan.
|
|
40
|
+
- **Do:** pick one task at a time. For each task:
|
|
41
|
+
- **TDD via `tdd`:** failing test → watch it fail → minimal code → watch it pass → refactor → commit. Vertical slice per cycle, never horizontal (don't write all tests then all code). Code written before its test gets deleted.
|
|
42
|
+
- **Browser pass via `agent-web-interface` for any user-visible behavior:** load `agent-web-interface:agent-web-interface-guide` first, then exercise against a running dev server. Capture a screenshot/snapshot. Code-level green tests do not substitute. If there is no UI surface yet, say so explicitly — do not silently skip.
|
|
43
|
+
- **Bug surfaces mid-task → `diagnose`:** if something is broken, throwing, failing, or behaving inconsistently, switch into the disciplined diagnosis loop (reproduce → minimise → hypothesise → instrument → fix → regression-test). Do not patch by guessing.
|
|
44
|
+
- **Unfamiliar code → `zoom-out`:** before editing code you do not yet understand, zoom out for the broader context.
|
|
45
|
+
- **Exit per task:** test green + browser-pass artifact (or explicit no-UI declaration) + review findings addressed.
|
|
46
|
+
|
|
47
|
+
## 5. Review — manual phase (between tasks, not a separate phase)
|
|
48
|
+
|
|
49
|
+
There is no Pocock skill for between-task code review. Default approach:
|
|
50
|
+
|
|
51
|
+
- After each task (or end of a small related batch), have the user — or a fresh subagent — read the diff against the task's stated verification.
|
|
52
|
+
- Critical findings block the next task. Lower-severity findings can be tracked and addressed later — but tracked, not forgotten.
|
|
53
|
+
- For codebase-wide drift after several tasks (modules getting tangled, names diverging from `CONTEXT.md`), run `improve-codebase-architecture` to find deepening opportunities and consolidate.
|
|
54
|
+
|
|
55
|
+
## 6. Finish — manual phase
|
|
56
|
+
|
|
57
|
+
There is no Pocock skill for finishing a development branch. Procedure:
|
|
58
|
+
|
|
59
|
+
- **Entry:** all planned tasks complete, tests green, no open critical review issues.
|
|
60
|
+
- **Do:**
|
|
61
|
+
1. Run the full test suite one more time — must be green.
|
|
62
|
+
2. Final `agent-web-interface` browser pass across the whole feature: golden path + every edge case named in the design.
|
|
63
|
+
3. **Default action in this repo: merge locally to `main` and remove the worktree.** Skip the 4-option integration prompt. Only stop and ask the user if: tests fail, the merge has conflicts, the base branch isn't `main`, or the user has explicitly asked for a PR instead.
|
|
64
|
+
4. Destructive fallbacks (discard) still require typed confirmation.
|
|
65
|
+
- **Exit:** branch merged to `main`, worktree cleaned up.
|
|
66
|
+
|
|
67
|
+
## Pinned skills and plugins
|
|
68
|
+
|
|
69
|
+
### Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills) — process discipline
|
|
70
|
+
|
|
71
|
+
These cover the inner loops the workflow leans on. Used under their original terms; credit to Matt Pocock.
|
|
72
|
+
|
|
73
|
+
- `grill-with-docs` — alignment + shared language; interview against `CONTEXT.md` and `docs/adr/` and update both inline. Phase 1 default for code work.
|
|
74
|
+
- `grill-me` — alignment without doc updates. Phase 1 fallback for non-code/simple sessions.
|
|
75
|
+
- `to-prd` — synthesize current conversation into a PRD on the issue tracker. Phase 3 step 1.
|
|
76
|
+
- `to-issues` — break a PRD/plan into vertical-slice issues. Phase 3 step 2.
|
|
77
|
+
- `tdd` — red-green-refactor; vertical slices only. Mandatory inside every Phase 4 task that produces code.
|
|
78
|
+
- `diagnose` — reproduce → minimise → hypothesise → instrument → fix → regression-test. Use whenever a bug surfaces mid-execution.
|
|
79
|
+
- `zoom-out` — broader/system-level context for unfamiliar code. Use before editing code you do not understand.
|
|
80
|
+
- `prototype` — throwaway terminal app or several radically different UI variations to flush out a design before committing. Optional Phase 1 aid.
|
|
81
|
+
- `improve-codebase-architecture` — find deepening opportunities; consolidate tangled modules. Run periodically between tasks; ideal between feature batches.
|
|
82
|
+
- `triage` — issue-tracker state machine when managing a backlog of incoming bugs / feature requests.
|
|
83
|
+
- `write-a-skill` — when authoring or editing a skill (including this one).
|
|
84
|
+
|
|
85
|
+
Skills with no Pocock equivalent (worktree setup, between-task code review, finishing) are run as manual procedures defined per phase above.
|
|
86
|
+
|
|
87
|
+
### `tanstack-start` — frontend/full-stack framework knowledge
|
|
88
|
+
|
|
89
|
+
Use whenever the task involves TanStack Start, TanStack Router, server functions, server routes, SSR, RSC, or migrating from Next.js. Core skill: `tanstack-start:tanstack-start-guide`. Domain-specific skills under `skills/upstream/@tanstack/...` cover routing, Start internals, the router plugin, virtual file routes, and React Server Components. Consult these before hand-rolling routing or data patterns.
|
|
90
|
+
|
|
91
|
+
### `frontend-design` — UI quality and product-facing design
|
|
92
|
+
|
|
93
|
+
Use whenever the task includes a user-visible screen, flow, layout, interaction pattern, or visual state. Load before making UI decisions so the implementation has deliberate hierarchy, responsive behavior, accessibility, and domain-appropriate visual polish instead of framework-default screens.
|
|
94
|
+
|
|
95
|
+
### `shadcn` — component library and design system
|
|
96
|
+
|
|
97
|
+
Use whenever UI work needs accessible primitives, form patterns, theming, or registry components. Skill: `shadcn:shadcn-ui`. Prefer installing from the shadcn registry over hand-writing button/input/dialog primitives.
|
|
98
|
+
|
|
99
|
+
### `agent-web-interface` — live browser interaction (mandatory test layer)
|
|
100
|
+
|
|
101
|
+
Required test layer for anything user-visible. Every Phase 4 task that builds or modifies UI, a route, a server function exposed to the browser, an API consumed by the UI, or any end-to-end flow MUST be exercised against a running dev server through `mcp__plugin_agent-web-interface_browser__*` tools before being considered done. Unit and integration tests do not substitute.
|
|
102
|
+
|
|
103
|
+
Skill: `agent-web-interface:agent-web-interface-guide`. **Load it BEFORE any `mcp__plugin_agent-web-interface_browser__*` tool call** so observations are structured and selectors are stable.
|
|
104
|
+
|
|
105
|
+
Use it to walk the golden path, exercise edge cases and error states named in the design, capture a screenshot/snapshot as the task's verification artifact, and spot regressions in adjacent flows the change could plausibly affect.
|
|
106
|
+
|
|
107
|
+
If the app cannot be exercised this way (no dev server, pure backend with no client yet), say so explicitly in the verification step — do not silently skip the browser pass.
|
|
108
|
+
|
|
109
|
+
## Attribution
|
|
110
|
+
|
|
111
|
+
The inner-loop process discipline in this skill is adapted from **Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills)**. The phase scaffolding (Brainstorm → Isolate → Plan → Execute → Review → Finish) and the mandatory browser-pass test layer (`agent-web-interface`) are this repo's own. All trademarks and links are property of their respective owners.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fullstack-engineering
|
|
3
|
+
description: End-to-end engineering workflow as a state machine - Brainstorm → Isolate → Plan → Execute (TDD + browser pass) → Review → Finish. Each phase has a required input and exit artifact on disk. Use when starting any non-trivial feature, bug fix, or refactor; when the user wants disciplined process with phase gates, design docs, plan files, worktrees, TDD, and browser verification; when they say "fullstack engineering", "follow the workflow", "do this properly end to end", or coordinate brainstorming + planning + execution together. Not for one-line edits, doc tweaks, or read-only investigation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Full-Stack Engineering
|
|
7
|
+
|
|
8
|
+
A state machine, not a suggestion. Each phase has a required input artifact and exit artifact, both on disk. **You may not act outside the current phase.** If you are about to take an action that does not match your current phase, STOP and re-enter the correct phase first.
|
|
9
|
+
|
|
10
|
+
If you think there is even a 1% chance you are skipping a phase, you are skipping a phase.
|
|
11
|
+
|
|
12
|
+
The skill leans on Matt Pocock's [Skills For Real Engineers](https://github.com/mattpocock/skills) for the inner loops (alignment, planning, TDD, diagnosis). See [PHASES.md](PHASES.md) for full attribution.
|
|
13
|
+
|
|
14
|
+
## The only thing you do every turn
|
|
15
|
+
|
|
16
|
+
Before any other tool call, every single turn, run the **Phase Detector** and announce the result. No exceptions — not for "quick" edits, not for "obvious" fixes, not for "just one file", not even for clarifying questions that touch code.
|
|
17
|
+
|
|
18
|
+
### Phase Detector (run first, every turn)
|
|
19
|
+
|
|
20
|
+
Check artifacts on disk in this exact order. The **first** matching row tells you the phase.
|
|
21
|
+
|
|
22
|
+
For simple, low-risk tasks, a lightweight planning session may satisfy Phase 1 — record the brief plan in the session naming the task, intended files, and verification. Use a full design doc and plan file for anything ambiguous, multi-step, architectural, user-visible, or risky.
|
|
23
|
+
|
|
24
|
+
| Check (in order) | Phase | Owning skill |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| All planned tasks done + tests green + integration option not chosen yet | **6. Finish** | (no skill — see PHASES.md) |
|
|
27
|
+
| Plan file / issue list exists with incomplete tasks | **4. Execute** (+ Review between tasks) | `tdd` per task; `diagnose` if a bug surfaces |
|
|
28
|
+
| Approved lightweight session plan + worktree exists | **4. Execute** | `tdd` per task |
|
|
29
|
+
| Approved design doc / PRD + worktree + no plan file | **3. Plan** | `to-prd` then `to-issues` |
|
|
30
|
+
| Approved design doc + no worktree | **2. Isolate** | (no skill — see PHASES.md) |
|
|
31
|
+
| Approved lightweight session plan + no worktree | **2. Isolate** | (no skill — see PHASES.md) |
|
|
32
|
+
| Anything else (new request, vague idea, no approved plan/design) | **1. Brainstorm** | `grill-with-docs` (code) or `grill-me` (non-code) |
|
|
33
|
+
|
|
34
|
+
Announce, in one line, before any other tool call:
|
|
35
|
+
`Phase: <N. Name> — invoking <skill or "manual phase">. Artifacts seen: <what you found>.`
|
|
36
|
+
|
|
37
|
+
When a phase has an owning skill, invoke it via the Skill tool before doing anything else. When a phase has no owning skill (Isolate, Finish), follow the procedure in [PHASES.md](PHASES.md) directly.
|
|
38
|
+
|
|
39
|
+
## Hard rules (override everything else)
|
|
40
|
+
|
|
41
|
+
1. **No code without an approved design doc / PRD or lightweight session plan.** If `Edit`/`Write`/`MultiEdit` is about to touch source files and neither exists, you are in Phase 1, not Phase 4.
|
|
42
|
+
2. **No code without a plan.** Full tasks → plan file or issue list on disk. Simple tasks → approved session plan naming task, files, verification.
|
|
43
|
+
3. **No production code outside an active TDD cycle.** Failing test first, watch it fail, then minimum code to pass. Code written before its test gets deleted. (Use `tdd`.)
|
|
44
|
+
4. **No "done" claim on user-visible work without a browser pass.** A screenshot or page snapshot from `mcp__plugin_agent-web-interface_browser__*` is the only acceptable proof. "Tests pass" is not proof.
|
|
45
|
+
5. **Critical review findings block the next task.** Fix before advancing.
|
|
46
|
+
6. **New scope means a new Brainstorm.** No expanding scope mid-execution. (Re-enter `grill-with-docs`.)
|
|
47
|
+
7. **Surface blockers, do not guess.** Missing creds, decisions, or access → stop and ask.
|
|
48
|
+
|
|
49
|
+
Violating any of these is a workflow failure, not a shortcut.
|
|
50
|
+
|
|
51
|
+
## Red-flag thoughts — these mean STOP
|
|
52
|
+
|
|
53
|
+
If any of these appear, you are about to skip a phase.
|
|
54
|
+
|
|
55
|
+
| Thought | Why it's wrong |
|
|
56
|
+
|---|---|
|
|
57
|
+
| "Small change, I'll just edit it." | Small changes still need a planning session. |
|
|
58
|
+
| "I already know the design." | If it's not on disk and approved, it's a guess. Run `grill-with-docs`. |
|
|
59
|
+
| "Let me explore the codebase first." | Exploration belongs inside Brainstorm or Plan. Use `zoom-out` for unfamiliar code. |
|
|
60
|
+
| "I'll write the test after I see if it works." | Not TDD. Test first. Code without a prior test gets deleted. |
|
|
61
|
+
| "Unit tests pass, task is done." | User-visible tasks need a browser-pass artifact. |
|
|
62
|
+
| "I'll fix this critical finding next task." | Critical findings block forward motion. |
|
|
63
|
+
| "User just wants me to do X, not follow process." | They installed this workflow on purpose. |
|
|
64
|
+
| "I'll add this related improvement while I'm here." | New scope = new Brainstorm. |
|
|
65
|
+
| "I'll answer their question quickly without a skill." | Phase Detector runs even for questions. |
|
|
66
|
+
|
|
67
|
+
## Phase decision flow
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
┌─────────────────────────────┐
|
|
71
|
+
│ New turn — run Phase │
|
|
72
|
+
│ Detector (artifacts on │
|
|
73
|
+
│ disk decide the phase) │
|
|
74
|
+
└──────────────┬──────────────┘
|
|
75
|
+
│
|
|
76
|
+
┌──────────────────────┼──────────────────────┐
|
|
77
|
+
│ │ │
|
|
78
|
+
no approved design/plan + plan file or
|
|
79
|
+
plan/design? no worktree? tasks remaining?
|
|
80
|
+
│ │ │
|
|
81
|
+
▼ ▼ ▼
|
|
82
|
+
Phase 1: Brainstorm Phase 2: Isolate Phase 4: Execute
|
|
83
|
+
(grill-with-docs (manual: worktree (tdd per task;
|
|
84
|
+
/ grill-me) + green baseline) diagnose on bugs;
|
|
85
|
+
browser pass via
|
|
86
|
+
agent-web-interface)
|
|
87
|
+
│
|
|
88
|
+
▼
|
|
89
|
+
all done +
|
|
90
|
+
tests green
|
|
91
|
+
│
|
|
92
|
+
▼
|
|
93
|
+
Phase 6: Finish
|
|
94
|
+
(manual: merge to
|
|
95
|
+
main + cleanup)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## When you cannot proceed
|
|
99
|
+
|
|
100
|
+
If a phase is blocked by missing requirements, credentials, environment access, or a user decision: **stop with the exact blocker and the next required input.** Do not skip ahead. Do not guess. Stuck-and-asking is a correct state; pretending-to-progress is not.
|
|
101
|
+
|
|
102
|
+
## Self-check before every tool call
|
|
103
|
+
|
|
104
|
+
Before any tool call other than the Skill tool invoking the phase's owning skill (or, for skill-less phases, the first action of that phase):
|
|
105
|
+
|
|
106
|
+
1. Did I run the Phase Detector this turn?
|
|
107
|
+
2. Did I announce the phase?
|
|
108
|
+
3. Did I invoke the owning skill (or follow PHASES.md for skill-less phases)?
|
|
109
|
+
4. Is the tool I'm about to call something that phase would actually have me do right now?
|
|
110
|
+
|
|
111
|
+
If any answer is no, stop and fix it.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Full-Stack Engineering"
|
|
3
|
+
short_description: "On-demand companion to the fullstack-engineering Workflow — same state machine, invoked once instead of looped"
|
|
4
|
+
default_prompt: "Walk me through the fullstack-engineering state machine for this change: foundation check, alignment, isolate, plan, execute (TDD + browser pass), review, manual QA, finish."
|