mcpill 1.1.0 → 1.2.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +78 -10
  3. package/dist/cli.js +345 -129
  4. package/package.json +1 -1
  5. package/src/__tests__/init.test.ts +17 -16
  6. package/src/__tests__/pack.test.ts +1 -1
  7. package/src/__tests__/validate.test.ts +5 -5
  8. package/src/commands/compile.ts +20 -32
  9. package/src/commands/init.ts +305 -81
  10. package/src/commands/pack.ts +1 -15
  11. package/src/commands/run.ts +16 -12
  12. package/src/commands/validate.ts +3 -14
  13. package/src/compiler/parse.ts +2 -2
  14. package/src/compiler/serialize.ts +4 -4
  15. package/.claude/commands/add-card.md +0 -9
  16. package/.claude/commands/append-card.md +0 -10
  17. package/.claude/commands/play-card.md +0 -14
  18. package/.claude/commands/turn.md +0 -28
  19. package/.claude/settings.json +0 -10
  20. package/.flowdeck/.flowdeckignore +0 -5
  21. package/.flowdeck/AGENT.md +0 -46
  22. package/.flowdeck/TODO.md.template +0 -14
  23. package/.flowdeck/_discard/start/DISCARD.md +0 -8
  24. package/.flowdeck/_discard/start/TODO.md +0 -35
  25. package/.flowdeck/_discard/start/turn.log +0 -28
  26. package/.flowdeck/_energy/ADR.md.template +0 -100
  27. package/.flowdeck/_energy/CLAUDE.md.template +0 -95
  28. package/.flowdeck/_energy/GENERALINSIGHTS.md.template +0 -57
  29. package/.flowdeck/_energy/MISSION.md.template +0 -89
  30. package/.flowdeck/_energy/OPEN-QUESTIONS.md.template +0 -109
  31. package/.flowdeck/_energy/PROJECTINSIGHTS.md.template +0 -64
  32. package/.flowdeck/_energy/SPEC.md.template +0 -101
  33. package/.flowdeck/_frozen/FROZEN.md +0 -4
  34. package/.flowdeck/_meld/MELD.md +0 -4
  35. package/.flowdeck/_stock/STOCK.md +0 -4
  36. package/.flowdeck/reframe/TODO.md +0 -71
  37. package/FLOWDECK.md +0 -17
@@ -1,89 +0,0 @@
1
- ---
2
- title: "Mission Brief"
3
- type: planning
4
- tags: [planning, scoping, ai-workflow]
5
- ---
6
-
7
- # Mission: {{PROJECT_NAME}}
8
-
9
- **Date:** {{DATE}}
10
- **Author:** {{AUTHOR}}
11
-
12
- ---
13
-
14
- <!--
15
- INSTRUCTIONS FOR THE MODEL:
16
- Your output must be this document with every section filled in. Do not write prose, summaries, or commentary outside the template structure.
17
- The prompt below is the raw input describing a task, feature, or problem. Use it to populate each section.
18
-
19
- Rules:
20
- - Each goal must be tagged [BOT] or [HUMAN]:
21
- - [BOT] — implementable by an AI agent from the spec alone (coding, scaffolding, configuration, tests)
22
- - [HUMAN] — requires human judgment, domain decisions, external coordination, creative input, or review
23
- - Order goals by dependency: a goal that blocks others must appear before them.
24
- - A [HUMAN] goal in the middle of a sequence signals a mandatory checkpoint before the next [BOT] batch can proceed.
25
- - Use real descriptions derived from the prompt — not placeholder names like "Goal 1".
26
- - Problem Statement: what is broken or missing without this mission.
27
- - Non-Goals: explicitly out of scope to prevent drift.
28
- - Success Criteria: how we know the mission is done.
29
- - Deliverables: concrete outputs.
30
- - Fill every table; add or remove rows as needed.
31
- - Remove HTML comments from the final output.
32
- - Do not leave placeholder text, generic labels, or empty cells.
33
- - Do not add, remove, or reorder sections.
34
- -->
35
-
36
- ## Objective
37
-
38
- > {{PROMPT}}
39
-
40
- ---
41
-
42
- ## Problem Statement
43
-
44
- <!-- What is broken, missing, or painful without this mission? Be specific. -->
45
-
46
- ## Goals
47
-
48
- <!-- Concrete, testable goals. Each should be verifiable at completion. -->
49
-
50
- - TODO [BOT]:
51
- - TODO [HUMAN]:
52
-
53
- ## Non-Goals
54
-
55
- <!-- Explicitly out of scope. Prevents scope creep. -->
56
-
57
- -
58
- -
59
-
60
- ## Success Criteria
61
-
62
- <!-- How will we know this mission is done? -->
63
-
64
- | Criterion | Measurement | Target |
65
- |-----------|-------------|--------|
66
- | | | |
67
-
68
- ## Constraints
69
-
70
- <!-- Known limits that shape the approach -->
71
-
72
- - **Time:**
73
- - **Resources:**
74
- - **Technical:**
75
-
76
- ## Deliverables
77
-
78
- <!-- Concrete outputs expected at completion -->
79
-
80
- 1.
81
- 2.
82
- 3.
83
-
84
- ---
85
-
86
- *Provided by [mdblu](https://github.com/ruco-ai/mdblu)*
87
-
88
- ---
89
- *Made with [mdblu](https://github.com/ruco-ai/mdblu) · source: `templates/MISSION.md.template`*
@@ -1,109 +0,0 @@
1
- ---
2
- title: "Open Questions"
3
- type: planning
4
- tags: [planning, scoping, ai-workflow]
5
- ---
6
-
7
- # Open Questions: {{PROJECT_NAME}}
8
-
9
- **Date:** {{DATE}}
10
- **Requested by:** {{AUTHOR}}
11
- **Status:** Awaiting dev input
12
-
13
- ---
14
-
15
- <!--
16
- INSTRUCTIONS FOR THE MODEL:
17
- Your output must be this document with every section filled in. Do not write prose, summaries, or commentary outside the template structure.
18
- The prompt below describes a project or feature in progress. Generate only the question categories and questions that are genuinely unknown and blocking or likely to affect the implementation.
19
- - Do not include categories that are fully resolved by the prompt.
20
- - Each question must have a clear "Why it matters" line so dev understands the impact of their answer.
21
- - Provide answer scaffolding (checkbox options, blank field, or short list) appropriate to the question type.
22
- - Do not invent questions for completeness — only ask what is actually unclear.
23
- - Remove HTML comments from the final output.
24
- - Do not add, remove, or reorder sections. You may omit entire categories if not relevant.
25
- - End with the "How to return this doc" section unchanged.
26
- -->
27
-
28
- ## Context
29
-
30
- > {{PROMPT}}
31
-
32
- ---
33
-
34
- <!-- For each relevant category below, list only the questions that are genuinely unresolved.
35
- Omit the entire category block if nothing is unknown in that area. -->
36
-
37
- ## Scope & Goals
38
-
39
- <!-- Q: What is in scope? What is explicitly out? What does "done" look like for v1? -->
40
-
41
- **Q1:**
42
- _Why it matters:_
43
- - [ ] Option A
44
- - [ ] Option B
45
- - [ ] Other: ___
46
-
47
- ---
48
-
49
- ## Tech Stack & Environment
50
-
51
- <!-- Q: Language, framework, runtime, deployment target, existing codebase constraints -->
52
-
53
- **Q1:**
54
- _Why it matters:_
55
- Answer: ___
56
-
57
- ---
58
-
59
- ## Data & State
60
-
61
- <!-- Q: Data sources, storage, schemas, persistence requirements, data ownership -->
62
-
63
- **Q1:**
64
- _Why it matters:_
65
- Answer: ___
66
-
67
- ---
68
-
69
- ## Integrations & Dependencies
70
-
71
- <!-- Q: External services, APIs, auth providers, third-party tools -->
72
-
73
- **Q1:**
74
- _Why it matters:_
75
- Answer: ___
76
-
77
- ---
78
-
79
- ## Users & Behavior
80
-
81
- <!-- Q: Who uses this? What do they do? Edge cases, error states, permissions -->
82
-
83
- **Q1:**
84
- _Why it matters:_
85
- Answer: ___
86
-
87
- ---
88
-
89
- ## Constraints & Non-Negotiables
90
-
91
- <!-- Q: Performance, security, compliance, deadlines, budget, team conventions -->
92
-
93
- **Q1:**
94
- _Why it matters:_
95
- Answer: ___
96
-
97
- ---
98
-
99
- ## How to Return This Doc
100
-
101
- Fill in the answers above, then pass this document back as your next prompt.
102
- You do not need to add context — the filled answers are enough to continue.
103
-
104
- ---
105
-
106
- *Provided by [mdblu](https://github.com/ruco-ai/mdblu)*
107
-
108
- ---
109
- *Made with [mdblu](https://github.com/ruco-ai/mdblu) · source: `templates/OPEN-QUESTIONS.md.template`*
@@ -1,64 +0,0 @@
1
- ---
2
- title: "Project Insights"
3
- type: metadata
4
- tags: [metadata, insights, ai-workflow]
5
- repo: {{PROJECT_NAME}}
6
- repo_url: {{REPO_URL}}
7
- last_updated: {{DATE}}
8
- privacy: local-only
9
- ---
10
-
11
- # Project Insights: {{PROJECT_NAME}}
12
-
13
- > Accumulated knowledge about this specific codebase. Written by Claude during sessions, read by Claude at session start. Never shared outside this machine — not even in xtage v1's collective pool.
14
-
15
- ---
16
-
17
- ## Codebase Quirks
18
-
19
- <!-- Non-obvious behavior, surprising implementation choices, things that bit you once -->
20
-
21
- -
22
-
23
- ## Deploy & Operations Notes
24
-
25
- <!-- How to run, debug, and deploy. Practical knowledge that isn't in the README -->
26
-
27
- -
28
-
29
- ## Key Architectural Decisions
30
-
31
- <!-- Decisions already made that Claude should not second-guess or relitigate -->
32
-
33
- | Decision | Rationale |
34
- |---|---|
35
- | | |
36
-
37
- ## Known Issues & Technical Debt
38
-
39
- <!-- Things that are broken, fragile, or intentionally deferred. Severity: low / medium / high -->
40
-
41
- | Issue | Severity | Notes |
42
- |---|---|---|
43
- | | | |
44
-
45
- ## Refactoring Notes
46
-
47
- <!-- Areas that need work and the right approach to take when the time comes -->
48
-
49
- -
50
-
51
- ## Session Log
52
-
53
- <!-- Auto-appended by Claude at session end via session-end MCP prompt. Most recent first. -->
54
-
55
- | Date | Key learnings from this session |
56
- |---|---|
57
- | | |
58
-
59
- ---
60
-
61
- *Generated by xtage {{TOOL_VERSION}} on {{DATE}} — updated by Claude at session end*
62
-
63
- ---
64
- *Made with [mdblu](https://github.com/ruco-ai/mdblu) · source: `templates/PROJECTINSIGHTS.md.template`*
@@ -1,101 +0,0 @@
1
- ---
2
- title: "Feature Specification"
3
- type: planning
4
- tags: [planning, specification, scoping]
5
- ---
6
-
7
- # Specification: {{PROJECT_NAME}}
8
-
9
- **Date:** {{DATE}}
10
- **Author:** {{AUTHOR}}
11
- **Status:** Draft
12
-
13
- ---
14
-
15
- <!--
16
- INSTRUCTIONS FOR THE MODEL:
17
- Your output must be this document with every section filled in. Do not write prose, summaries, or commentary outside the template structure.
18
- The prompt below is a description of a feature, system, or change to be specified. Use it to populate each section.
19
- - Background & Motivation: explain the why, not restate the prompt.
20
- - Goals and Non-Goals: explicit and derived from the prompt.
21
- - Detailed Design: cover data model, interface, and behavior with real content.
22
- - Fill all tables; add rows as needed.
23
- - For genuinely unknown information, write "TBD — [what needs to be decided]".
24
- - Remove HTML comments from the final output.
25
- - Do not leave generic placeholder text or empty cells.
26
- - Do not add, remove, or reorder sections.
27
- -->
28
-
29
- ## Overview
30
-
31
- > {{PROMPT}}
32
-
33
- ---
34
-
35
- ## Background & Motivation
36
-
37
- <!-- Why is this needed? What problem does it solve? What happens without it? -->
38
-
39
- ## Goals
40
-
41
- -
42
- -
43
-
44
- ## Non-Goals
45
-
46
- -
47
- -
48
-
49
- ## Detailed Design
50
-
51
- ### Data Model
52
-
53
- ```
54
- <!-- Describe entities and fields relevant to this spec -->
55
- ```
56
-
57
- ### API / Interface
58
-
59
- ```
60
- <!-- Function signatures, CLI flags, REST endpoints, or event schemas -->
61
- ```
62
-
63
- ### Behavior
64
-
65
- <!-- Step-by-step description of what the system does, from input to output -->
66
-
67
- ## Error Handling
68
-
69
- <!-- How does the system behave when things go wrong? -->
70
-
71
- | Error Case | Behavior | User-Facing Message |
72
- |------------|----------|---------------------|
73
- | | | |
74
-
75
- ## Security Considerations
76
-
77
- <!-- Authentication, authorization, input validation, data privacy -->
78
-
79
- ## Testing Plan
80
-
81
- - [ ] TODO:
82
- - [ ] TODO:
83
-
84
- ## Open Questions
85
-
86
- <!-- Unresolved decisions that need answers before or during implementation -->
87
-
88
- - [ ] TODO:
89
-
90
- ## Alternatives Considered
91
-
92
- | Alternative | Pros | Cons | Decision |
93
- |-------------|------|------|----------|
94
- | | | | |
95
-
96
- ---
97
-
98
- *Provided by [mdblu](https://github.com/ruco-ai/mdblu)*
99
-
100
- ---
101
- *Made with [mdblu](https://github.com/ruco-ai/mdblu) · source: `templates/SPEC.md.template`*
@@ -1,4 +0,0 @@
1
- # Frozen Cards
2
-
3
- | Card | Frozen | Blocking Condition | User Note |
4
- |------|--------|--------------------|-----------|
@@ -1,4 +0,0 @@
1
- # Meld
2
-
3
- | Card | Melded | Summary |
4
- |------|--------|--------|
@@ -1,4 +0,0 @@
1
- # Stock
2
-
3
- | Card | Added | Description |
4
- |------|-------|-------------|
@@ -1,71 +0,0 @@
1
- # mcpill
2
-
3
- `@ruco-ai/mcpill@1.0.2` is published; `mcpill` unscoped is **free** and needs claiming. CLI for building, validating, and publishing MCP servers using the pill format. Same migration pattern as mcpster and xtage: publish unscoped, deprecate scoped, do not unpublish. Existing package is also missing `repository` and `homepage` metadata — fix on the way through. Move canonical home to `mcpill.ruco.dev`.
4
-
5
- ## BOT
6
-
7
- - [x] Grep repo for all `@ruco-ai/mcpill` and `@ruco-ai/` references (code, docs, examples, CLI help text, generated pill manifests, error messages)
8
- > Found and updated in package.json, src/commands/{run,pack,init,compile}.ts, src/loaders/prompts.ts, src/__tests__/pack.test.ts, README.md
9
- - [x] Update `package.json`:
10
- - `name`: change from `@ruco-ai/mcpill` to `mcpill`
11
- - `homepage`: `https://mcpill.ruco.dev` (currently missing)
12
- - `repository`: set to GitHub URL (currently missing — confirm canonical repo path with HUMAN)
13
- - `bugs.url`: matching GitHub issues URL (currently missing)
14
- - `version`: bump to next minor for the rename milestone (e.g., 1.0.2 → 1.1.0)
15
- > name → mcpill, version → 1.1.0, homepage/repository/bugs added; deps updated to mcpill-runtime and mcpster (unscoped)
16
- - [x] Update README:
17
- - Install command to `npm install mcpill` (drop scope)
18
- - Add "Renamed from `@ruco-ai/mcpill`" note near the top with one-line migration guidance
19
- - Refresh any usage examples that show the old scope
20
- - Confirm the description matches the package.json description ("CLI for building, validating, and publishing MCP servers using the pill format")
21
- > Added rename note + migration command; updated pack section to mcpill-runtime (unscoped)
22
- - [x] Update CLI help strings, error messages, version banner, and example output to use unscoped name
23
- > Version banner reads dynamically from package.json (no change needed); no other hardcoded scoped strings in CLI layer
24
- - [x] Audit any generated artifacts (pill manifests, scaffolded files) for hardcoded references to the old scope
25
- > Updated init.ts (scaffolded tools.js template) and compile.ts (generated tools.js); pack.ts (bin/server.js template + injected dep key)
26
- - [x] If mcpill depends on or interacts with `mcpster`, ensure the dependency is the unscoped `mcpster` (not `@ruco-ai/mcpster`) in package.json
27
- > Changed to mcpster in package.json and src/commands/run.ts
28
- - [x] Add CHANGELOG entry: `1.1.0 — Renamed to mcpill; @ruco-ai/mcpill deprecated; canonical home now mcpill.ruco.dev; repository and homepage metadata added`
29
- > Created CHANGELOG.md (file didn't exist); entry also notes mcpill-runtime rename
30
- - [x] Draft GitHub repo description for HUMAN to paste
31
- > CLI for building, validating, and publishing MCP servers using the pill format.
32
-
33
- ## HUMAN
34
-
35
- - [x] **Prereq:** `ruco.dev` registered, `*.ruco.dev` wildcard DNS configured
36
- - [x] **Prereq:** mcpster card complete if mcpill depends on it (so the dependency resolves to the unscoped name)
37
- - [ ] Provision `mcpill.ruco.dev` (landing page or 301 to GitHub README for now)
38
- - [x] Confirm canonical GitHub repo URL for BOT to set in package.json
39
- >github.com/ruco-dev/mcpill
40
- - [x] Is `@ruco-ai/mcpill-runtime` also being renamed (e.g. to `mcpill-runtime`)?
41
- > _answer:_yes
42
- - [x] Review BOT changes
43
- - [ ] `npm publish` (first publish under the unscoped name — claims it permanently)
44
- - [ ] `npm deprecate "@ruco-ai/mcpill" "*" "Renamed to mcpill — please install 'mcpill' instead. See https://mcpill.ruco.dev"`
45
- - [ ] Commit + push
46
- - [ ] Update GitHub repo description and topics
47
- - [ ] Verify: `npm view mcpill` shows the new package owned by you; `npm install @ruco-ai/mcpill` shows the deprecation message; `mcpill --version` reports 1.1.0
48
-
49
- #### COMMENTS
50
-
51
- **Grep task** — `@ruco-ai/mcpster` appears in `package.json` (dependencies) and `src/commands/run.ts:4` (`import { createServer } from "@ruco-ai/mcpster"`). The mcpster card is confirmed complete, so both become `mcpster`. Straightforward find-and-replace.
52
-
53
- **`@ruco-ai/mcpill-runtime` is a separate scope** — The card targets `@ruco-ai/mcpill` → `mcpill`, but `@ruco-ai/mcpill-runtime` is a *different package* used heavily throughout:
54
- - `src/commands/run.ts:3` — runtime import in this CLI
55
- - `src/commands/pack.ts:7,44-45` — written into the user's generated `bin/server.js` and injected into the user's `package.json` as a dependency
56
- - `src/commands/init.ts:4` — written into scaffolded `.mcpill/tools.js`
57
- - `src/commands/compile.ts:18` — written into generated handler stubs
58
- - `package.json` — both `dependencies` and `devDependencies`
59
- - `src/__tests__/pack.test.ts:72` — test assertion
60
-
61
- **This is the blocking question above.** If `mcpill-runtime` is NOT being renamed in this card, the BOT's "audit generated artifacts" task finds these references but leaves them untouched (correct behavior, documenting a runtime dep). If it IS being renamed, the scope of changes doubles and the test at `pack.test.ts:72` needs updating too.
62
-
63
- **`devDependencies` oddity** — `"@ruco-ai/mcpill-runtime": "file:../mcpill/packages/mcpill"` is a local monorepo override for development. The path `../mcpill/packages/mcpill` doesn't appear in this repo's file tree (no `packages/` folder visible). BOT should leave this untouched unless HUMAN clarifies it's broken.
64
-
65
- **README is already mostly clean** — `npm install -g mcpill` is already unscoped. The rename note and migration guidance are the only missing pieces. The `### mcpill pack` section documents `@ruco-ai/mcpill-runtime` in the code example — update only if the runtime is also being renamed.
66
-
67
- **CLI version banner** — `src/cli.ts:19` reads version dynamically from `package.json`; no hardcoded string to update there.
68
-
69
- **CHANGELOG.md doesn't exist** — BOT will need to create the file, not just append to it.
70
-
71
- **GitHub repo description draft** — concrete deliverable BOT can do with no dependencies; a one-liner like: `CLI for building, validating, and publishing MCP servers using the pill format.`
package/FLOWDECK.md DELETED
@@ -1,17 +0,0 @@
1
- # Project
2
-
3
- ## Vision
4
-
5
- <!-- One paragraph describing what this project does and why it exists. -->
6
-
7
- ## Current state
8
-
9
- <!-- Bullet list of shipped capabilities. Update this after each meld. -->
10
-
11
- - (no capabilities shipped yet)
12
-
13
- ## Known gaps
14
-
15
- <!-- Open known issues or missing pieces. Update this after each meld. -->
16
-
17
- - (none recorded yet)