@cliangdev/flux-plugin 0.1.0 → 0.2.0-dev.359209a
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/README.md +55 -22
- package/agents/coder.md +317 -0
- package/agents/critic.md +174 -0
- package/agents/researcher.md +146 -0
- package/agents/verifier.md +149 -0
- package/bin/install.cjs +390 -0
- package/commands/breakdown.md +48 -10
- package/commands/dashboard.md +29 -0
- package/commands/flux.md +218 -94
- package/commands/implement.md +167 -17
- package/commands/linear.md +172 -0
- package/commands/prd.md +997 -82
- package/manifest.json +16 -0
- package/package.json +17 -11
- package/skills/agent-creator/SKILL.md +2 -0
- package/skills/epic-template/SKILL.md +2 -0
- package/skills/flux-orchestrator/SKILL.md +68 -76
- package/skills/prd-writer/SKILL.md +761 -0
- package/skills/ux-ui-design/SKILL.md +346 -0
- package/skills/ux-ui-design/references/design-tokens.md +359 -0
- package/src/__tests__/version.test.ts +37 -0
- package/src/adapters/local/.gitkeep +0 -0
- package/src/dashboard/__tests__/api.test.ts +211 -0
- package/src/dashboard/browser.ts +35 -0
- package/src/dashboard/public/app.js +869 -0
- package/src/dashboard/public/index.html +90 -0
- package/src/dashboard/public/styles.css +807 -0
- package/src/dashboard/public/vendor/highlight.css +10 -0
- package/src/dashboard/public/vendor/highlight.min.js +8422 -0
- package/src/dashboard/public/vendor/marked.min.js +2210 -0
- package/src/dashboard/server.ts +296 -0
- package/src/dashboard/watchers.ts +83 -0
- package/src/server/__tests__/config.test.ts +163 -0
- package/src/server/adapters/__tests__/a-client-linear.test.ts +197 -0
- package/src/server/adapters/__tests__/adapter-factory.test.ts +230 -0
- package/src/server/adapters/__tests__/dependency-ops.test.ts +429 -0
- package/src/server/adapters/__tests__/document-ops.test.ts +306 -0
- package/src/server/adapters/__tests__/linear-adapter.test.ts +91 -0
- package/src/server/adapters/__tests__/linear-config.test.ts +425 -0
- package/src/server/adapters/__tests__/linear-criteria-parser.test.ts +287 -0
- package/src/server/adapters/__tests__/linear-description-test.ts +238 -0
- package/src/server/adapters/__tests__/linear-epic-crud.test.ts +496 -0
- package/src/server/adapters/__tests__/linear-mappers-description.test.ts +276 -0
- package/src/server/adapters/__tests__/linear-mappers-epic.test.ts +294 -0
- package/src/server/adapters/__tests__/linear-mappers-prd.test.ts +300 -0
- package/src/server/adapters/__tests__/linear-mappers-task.test.ts +197 -0
- package/src/server/adapters/__tests__/linear-prd-crud.test.ts +620 -0
- package/src/server/adapters/__tests__/linear-stats.test.ts +450 -0
- package/src/server/adapters/__tests__/linear-task-crud.test.ts +534 -0
- package/src/server/adapters/__tests__/linear-types.test.ts +243 -0
- package/src/server/adapters/__tests__/status-ops.test.ts +441 -0
- package/src/server/adapters/factory.ts +90 -0
- package/src/server/adapters/index.ts +9 -0
- package/src/server/adapters/linear/adapter.ts +1141 -0
- package/src/server/adapters/linear/client.ts +169 -0
- package/src/server/adapters/linear/config.ts +152 -0
- package/src/server/adapters/linear/helpers/criteria-parser.ts +197 -0
- package/src/server/adapters/linear/helpers/index.ts +7 -0
- package/src/server/adapters/linear/index.ts +16 -0
- package/src/server/adapters/linear/mappers/description.ts +136 -0
- package/src/server/adapters/linear/mappers/epic.ts +81 -0
- package/src/server/adapters/linear/mappers/index.ts +27 -0
- package/src/server/adapters/linear/mappers/prd.ts +178 -0
- package/src/server/adapters/linear/mappers/task.ts +82 -0
- package/src/server/adapters/linear/types.ts +264 -0
- package/src/server/adapters/local-adapter.ts +1009 -0
- package/src/server/adapters/types.ts +293 -0
- package/src/server/config.ts +73 -0
- package/src/server/db/__tests__/queries.test.ts +473 -0
- package/src/server/db/ids.ts +17 -0
- package/src/server/db/index.ts +69 -0
- package/src/server/db/queries.ts +142 -0
- package/src/server/db/refs.ts +60 -0
- package/src/server/db/schema.ts +97 -0
- package/src/server/db/sqlite.ts +10 -0
- package/src/server/index.ts +81 -0
- package/src/server/tools/__tests__/crud.test.ts +411 -0
- package/src/server/tools/__tests__/get-version.test.ts +27 -0
- package/src/server/tools/__tests__/mcp-interface.test.ts +479 -0
- package/src/server/tools/__tests__/query.test.ts +405 -0
- package/src/server/tools/__tests__/z-configure-linear.test.ts +511 -0
- package/src/server/tools/__tests__/z-get-linear-url.test.ts +108 -0
- package/src/server/tools/configure-linear.ts +373 -0
- package/src/server/tools/create-epic.ts +44 -0
- package/src/server/tools/create-prd.ts +40 -0
- package/src/server/tools/create-task.ts +47 -0
- package/src/server/tools/criteria.ts +50 -0
- package/src/server/tools/delete-entity.ts +76 -0
- package/src/server/tools/dependencies.ts +55 -0
- package/src/server/tools/get-entity.ts +240 -0
- package/src/server/tools/get-linear-url.ts +28 -0
- package/src/server/tools/get-stats.ts +52 -0
- package/src/server/tools/get-version.ts +20 -0
- package/src/server/tools/index.ts +158 -0
- package/src/server/tools/init-project.ts +108 -0
- package/src/server/tools/query-entities.ts +167 -0
- package/src/server/tools/render-status.ts +219 -0
- package/src/server/tools/update-entity.ts +140 -0
- package/src/server/tools/update-status.ts +166 -0
- package/src/server/utils/__tests__/mcp-response.test.ts +331 -0
- package/src/server/utils/logger.ts +9 -0
- package/src/server/utils/mcp-response.ts +254 -0
- package/src/server/utils/status-transitions.ts +160 -0
- package/src/status-line/__tests__/status-line.test.ts +215 -0
- package/src/status-line/index.ts +147 -0
- package/src/utils/__tests__/chalk-import.test.ts +32 -0
- package/src/utils/__tests__/display.test.ts +97 -0
- package/src/utils/__tests__/status-renderer.test.ts +310 -0
- package/src/utils/display.ts +62 -0
- package/src/utils/status-renderer.ts +214 -0
- package/src/version.ts +5 -0
- package/dist/server/index.js +0 -86929
- package/skills/prd-template/SKILL.md +0 -240
package/manifest.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./manifest.schema.json",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"structure": {
|
|
5
|
+
"commands": ["flux.md", "prd.md", "breakdown.md", "implement.md"],
|
|
6
|
+
"skills": [
|
|
7
|
+
"agent-creator",
|
|
8
|
+
"epic-template",
|
|
9
|
+
"flux-orchestrator",
|
|
10
|
+
"prd-writer",
|
|
11
|
+
"ux-ui-design"
|
|
12
|
+
],
|
|
13
|
+
"agents": ["coder.md", "critic.md", "researcher.md", "verifier.md"],
|
|
14
|
+
"hooks": []
|
|
15
|
+
}
|
|
16
|
+
}
|
package/package.json
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cliangdev/flux-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-dev.359209a",
|
|
4
4
|
"description": "Claude Code plugin for AI-first workflow orchestration with MCP server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/server/index.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"flux-plugin": "./
|
|
8
|
+
"flux-plugin": "./bin/install.cjs"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
|
-
"
|
|
11
|
+
"bin/install.cjs",
|
|
12
|
+
"src/",
|
|
12
13
|
"skills/",
|
|
13
|
-
"commands/"
|
|
14
|
+
"commands/",
|
|
15
|
+
"agents/",
|
|
16
|
+
"manifest.json"
|
|
14
17
|
],
|
|
15
18
|
"scripts": {
|
|
16
19
|
"dev": "bun run src/server/index.ts",
|
|
17
|
-
"build": "bun build src/server/index.ts --
|
|
18
|
-
"
|
|
19
|
-
"build:
|
|
20
|
-
"build:
|
|
21
|
-
"
|
|
22
|
-
"
|
|
20
|
+
"build": "bun build --compile --outfile bin/flux-server src/server/index.ts && bun build --compile --outfile bin/flux-status src/status-line/index.ts && bun build --compile --outfile bin/flux-dashboard src/dashboard/server.ts",
|
|
21
|
+
"build:server": "bun build --compile --outfile bin/flux-server src/server/index.ts",
|
|
22
|
+
"build:status": "bun build --compile --outfile bin/flux-status src/status-line/index.ts",
|
|
23
|
+
"build:dashboard": "bun build --compile --outfile bin/flux-dashboard src/dashboard/server.ts",
|
|
24
|
+
"dev:dashboard": "bun run src/dashboard/server.ts",
|
|
25
|
+
"validate": "node scripts/validate-structure.cjs",
|
|
26
|
+
"test:integration": "bun test scripts/__tests__/integration.test.ts --timeout 120000",
|
|
27
|
+
"prepublishOnly": "bun run validate && bun run test:integration",
|
|
23
28
|
"test": "bun test",
|
|
24
29
|
"test:linear-description": "bun run src/server/adapters/__tests__/linear-description-test.ts",
|
|
25
30
|
"typecheck": "tsc --noEmit",
|
|
26
31
|
"lint": "biome check .",
|
|
27
32
|
"lint:fix": "biome check --write .",
|
|
28
33
|
"format": "biome format --write .",
|
|
29
|
-
"verify-release": "bun run scripts/verify-release.ts"
|
|
34
|
+
"verify-release": "bun run scripts/verify-release.ts",
|
|
35
|
+
"release": "./scripts/release.sh"
|
|
30
36
|
},
|
|
31
37
|
"repository": {
|
|
32
38
|
"type": "git",
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
+
name: flux:agent-creator
|
|
2
3
|
description: Guide for creating effective subagents. Use when users want to create a new agent that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
|
|
4
|
+
user-invocable: false
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
# Agent Creator Skill
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
---
|
|
2
|
+
name: flux:flux-orchestrator
|
|
2
3
|
description: Orchestrates Flux workflows based on project context
|
|
4
|
+
user-invocable: false
|
|
3
5
|
---
|
|
4
6
|
|
|
5
7
|
# Flux Orchestrator Skill
|
|
6
8
|
|
|
7
|
-
This skill is automatically active when working in a Flux project. It provides context about available tools and
|
|
9
|
+
This skill is automatically active when working in a Flux project. It provides context about available tools, workflow patterns, and integration options.
|
|
8
10
|
|
|
9
11
|
## Available MCP Tools
|
|
10
12
|
|
|
11
13
|
### Query Tools
|
|
12
|
-
- `get_project_context` - Check if project initialized, get name/vision/prefix
|
|
13
14
|
- `get_stats` - Get PRD/epic/task counts by status
|
|
14
15
|
- `get_entity` - Fetch entity by ref with optional includes (criteria, tasks, dependencies)
|
|
15
16
|
- `query_entities` - Search entities by type, status, parent ref
|
|
17
|
+
- `render_status` - Get formatted project status with progress bars
|
|
18
|
+
- `get_version` - Get Flux plugin version
|
|
16
19
|
|
|
17
20
|
### Mutation Tools
|
|
18
21
|
- `init_project` - Initialize new .flux/ directory with project.json and database
|
|
22
|
+
- `configure_linear` - Configure Linear integration (supports interactive mode)
|
|
19
23
|
- `create_prd` - Create a new PRD
|
|
20
24
|
- `create_epic` - Create an epic linked to a PRD
|
|
21
25
|
- `create_task` - Create a task linked to an epic
|
|
@@ -29,102 +33,90 @@ This skill is automatically active when working in a Flux project. It provides c
|
|
|
29
33
|
- `add_criteria` - Add acceptance criterion to epic or task
|
|
30
34
|
- `mark_criteria_met` - Mark criterion as satisfied
|
|
31
35
|
|
|
32
|
-
##
|
|
36
|
+
## Available Commands
|
|
37
|
+
|
|
38
|
+
| Command | Purpose |
|
|
39
|
+
|---------|---------|
|
|
40
|
+
| `/flux` | Project init, status, and workflow routing |
|
|
41
|
+
| `/flux:linear` | Connect project to Linear (interactive setup) |
|
|
42
|
+
| `/flux:prd` | Create PRDs through discovery, research, and guided writing |
|
|
43
|
+
| `/flux:breakdown` | Break approved PRD into epics and tasks |
|
|
44
|
+
| `/flux:implement` | Implement tasks with TDD workflow |
|
|
45
|
+
|
|
46
|
+
## Available Skills
|
|
33
47
|
|
|
34
|
-
|
|
48
|
+
| Skill | Purpose | Auto-loaded When |
|
|
49
|
+
|-------|---------|------------------|
|
|
50
|
+
| `flux:prd-writer` | PRD structure, templates, and quality guidelines | Creating or refining PRDs |
|
|
51
|
+
| `flux:epic-template` | Epic/task structure and breakdown patterns | Breaking down PRDs |
|
|
52
|
+
| `flux:agent-creator` | Guide for creating specialized subagents | Building new agents |
|
|
35
53
|
|
|
36
|
-
|
|
37
|
-
|
|
54
|
+
## Workflow States
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Uninitialized → Initialized → PRD Draft → Pending Review → Reviewed → Approved → Breakdown Ready → In Progress → Complete
|
|
58
|
+
↓
|
|
59
|
+
(optional) Linear Connected
|
|
60
|
+
```
|
|
38
61
|
|
|
39
|
-
|
|
40
|
-
|
|
62
|
+
### PRD Status Transitions
|
|
63
|
+
```
|
|
64
|
+
DRAFT → PENDING_REVIEW → REVIEWED → APPROVED → BREAKDOWN_READY → COMPLETED
|
|
65
|
+
↓ ↓
|
|
66
|
+
DRAFT (revise) DRAFT (revise)
|
|
67
|
+
```
|
|
41
68
|
|
|
42
|
-
|
|
43
|
-
|
|
69
|
+
### Epic/Task Statuses
|
|
70
|
+
- `PENDING` → `IN_PROGRESS` → `COMPLETED`
|
|
44
71
|
|
|
45
|
-
|
|
46
|
-
- Action: Run critique agent, then approve or revise
|
|
72
|
+
## Backend Adapters
|
|
47
73
|
|
|
48
|
-
|
|
49
|
-
- Action: Address feedback, then approve or revise to DRAFT
|
|
74
|
+
Flux supports multiple backends via the adapter pattern:
|
|
50
75
|
|
|
51
|
-
|
|
52
|
-
|
|
76
|
+
| Adapter | Storage | Use Case |
|
|
77
|
+
|---------|---------|----------|
|
|
78
|
+
| `local` | SQLite (.flux/flux.db) | Default, offline-first |
|
|
79
|
+
| `linear` | Linear API | Team collaboration, issue tracking |
|
|
53
80
|
|
|
54
|
-
|
|
55
|
-
- Action: Run `/flux:implement` to start coding
|
|
81
|
+
### Switching to Linear
|
|
56
82
|
|
|
57
|
-
|
|
58
|
-
|
|
83
|
+
Use `configure_linear` with interactive mode:
|
|
84
|
+
1. `{interactive: true}` → returns teams list
|
|
85
|
+
2. `{interactive: true, teamId: "..."}` → returns projects list
|
|
86
|
+
3. `{teamId: "...", projectName/existingProjectId: "..."}` → configures
|
|
59
87
|
|
|
60
|
-
|
|
61
|
-
- Action: Review and create PR
|
|
88
|
+
Or run `/flux:linear` for guided setup.
|
|
62
89
|
|
|
63
90
|
## Entity References
|
|
64
91
|
|
|
65
|
-
|
|
92
|
+
Format: `{PREFIX}-{TYPE}{NUMBER}`
|
|
66
93
|
|
|
67
94
|
- PRD: `MSA-P1`, `MSA-P2`
|
|
68
95
|
- Epic: `MSA-E1`, `MSA-E2`
|
|
69
96
|
- Task: `MSA-T1`, `MSA-T2`
|
|
70
97
|
|
|
71
|
-
The prefix is generated from the project name during initialization.
|
|
72
|
-
|
|
73
|
-
## Status Values
|
|
74
|
-
|
|
75
|
-
### PRD Statuses (6-stage workflow)
|
|
76
|
-
- `DRAFT` - Initial state, being created/refined
|
|
77
|
-
- `PENDING_REVIEW` - Submitted for critique
|
|
78
|
-
- `REVIEWED` - Critique complete, awaiting approval
|
|
79
|
-
- `APPROVED` - Ready for epic breakdown
|
|
80
|
-
- `BREAKDOWN_READY` - Epics and tasks created
|
|
81
|
-
- `COMPLETED` - All epics done
|
|
82
|
-
|
|
83
|
-
### Valid PRD Transitions
|
|
84
|
-
```
|
|
85
|
-
DRAFT → PENDING_REVIEW
|
|
86
|
-
PENDING_REVIEW → REVIEWED | DRAFT (revise)
|
|
87
|
-
REVIEWED → APPROVED | DRAFT (revise)
|
|
88
|
-
APPROVED → BREAKDOWN_READY
|
|
89
|
-
BREAKDOWN_READY → COMPLETED
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Epic/Task Statuses
|
|
93
|
-
- `PENDING` - Not started
|
|
94
|
-
- `IN_PROGRESS` - Currently being worked on
|
|
95
|
-
- `COMPLETED` - Done
|
|
96
|
-
|
|
97
|
-
## Confidence-Based Autonomy
|
|
98
|
-
|
|
99
|
-
The orchestrator uses confidence levels to determine autonomy:
|
|
100
|
-
|
|
101
|
-
| Confidence | Behavior | Example |
|
|
102
|
-
|------------|----------|---------|
|
|
103
|
-
| > 80% | Auto-execute, inform user | "I'm creating the epic structure..." |
|
|
104
|
-
| 50-80% | Suggest action, wait for confirmation | "Ready to break down into tasks. Proceed?" |
|
|
105
|
-
| < 50% | Ask clarifying question | "Should we research this technology first?" |
|
|
106
|
-
|
|
107
|
-
### Confidence Indicators
|
|
108
|
-
- **High confidence (>80%)**: Clear next step, no ambiguity, user has been responsive
|
|
109
|
-
- **Medium confidence (50-80%)**: Reasonable next step, some uncertainty
|
|
110
|
-
- **Low confidence (<50%)**: Multiple valid paths, unclear requirements, unfamiliar tech
|
|
111
|
-
|
|
112
98
|
## Available Subagents
|
|
113
99
|
|
|
114
|
-
### Research Agent
|
|
115
|
-
- **Trigger**: Unfamiliar technology
|
|
116
|
-
- **Purpose**: Gather information about libraries, frameworks, APIs
|
|
100
|
+
### Research Agent (`flux:flux-researcher`)
|
|
101
|
+
- **Trigger**: Unfamiliar technology, confidence < 70%
|
|
117
102
|
- **Tools**: Context7, WebSearch, WebFetch
|
|
118
103
|
|
|
119
|
-
### Critique Agent
|
|
120
|
-
- **Trigger**: PRD
|
|
121
|
-
- **
|
|
122
|
-
|
|
104
|
+
### Critique Agent (`flux:flux-critic`)
|
|
105
|
+
- **Trigger**: PRD submitted for review
|
|
106
|
+
- **Output**: Feasibility analysis, risks, recommendations
|
|
107
|
+
|
|
108
|
+
### Coder Agent (`flux:flux-coder`)
|
|
109
|
+
- **Trigger**: Task implementation
|
|
110
|
+
- **Workflow**: TDD - write tests, implement, verify
|
|
111
|
+
|
|
112
|
+
### Verifier Agent (`flux:flux-verifier`)
|
|
113
|
+
- **Trigger**: After implementation
|
|
114
|
+
- **Purpose**: Verify acceptance criteria coverage
|
|
123
115
|
|
|
124
116
|
## Best Practices
|
|
125
117
|
|
|
126
|
-
1. **
|
|
127
|
-
2. **Use refs, not IDs** - Tools accept
|
|
128
|
-
3. **
|
|
129
|
-
4. **
|
|
130
|
-
5. **
|
|
118
|
+
1. **Handle PROJECT_NOT_INITIALIZED** - If any tool returns this error, direct user to run `/flux` to initialize the project
|
|
119
|
+
2. **Use refs, not IDs** - Tools accept `MSA-E1` format
|
|
120
|
+
3. **Use render_status** - For visual project overview
|
|
121
|
+
4. **Validate transitions** - `update_status` enforces valid transitions
|
|
122
|
+
5. **Include related data** - Use `include` param to fetch nested entities
|