@dendelion/paper-camp 0.39.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{daemon-state.BeDnhzBY.js → daemon-state.Evil_jr0.js} +93 -104
- package/dist/chunks/daemon-state.Evil_jr0.js.map +1 -0
- package/dist/chunks/needs.BL7yYaO7.js +3549 -0
- package/dist/chunks/needs.BL7yYaO7.js.map +1 -0
- package/dist/cli/index.js +4396 -4134
- package/dist/cli/index.js.map +1 -1
- package/dist/core/chat-file.d.ts +1 -0
- package/dist/core/chat-file.d.ts.map +1 -1
- package/dist/core/ci/ci-release.d.ts +5 -0
- package/dist/core/ci/ci-release.d.ts.map +1 -1
- package/dist/core/daemon-state/daemon-state.d.ts +3 -11
- package/dist/core/daemon-state/daemon-state.d.ts.map +1 -1
- package/dist/core/decision-text.d.ts +9 -0
- package/dist/core/decision-text.d.ts.map +1 -0
- package/dist/core/decision-text.test.d.ts +2 -0
- package/dist/core/decision-text.test.d.ts.map +1 -0
- package/dist/core/desk-discovery/evidence.d.ts +1 -0
- package/dist/core/desk-discovery/evidence.d.ts.map +1 -1
- package/dist/core/doctor/checks/tooling.d.ts.map +1 -1
- package/dist/core/doctor/doctor.d.ts +2 -0
- package/dist/core/doctor/doctor.d.ts.map +1 -1
- package/dist/core/doctor/fix.d.ts +1 -1
- package/dist/core/doctor/fix.d.ts.map +1 -1
- package/dist/core/doctor/rules.d.ts +10 -0
- package/dist/core/doctor/rules.d.ts.map +1 -1
- package/dist/core/entity-view.d.ts.map +1 -1
- package/dist/core/git-log.d.ts +5 -0
- package/dist/core/git-log.d.ts.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +192 -178
- package/dist/core/needs-status.d.ts +4 -0
- package/dist/core/needs-status.d.ts.map +1 -0
- package/dist/core/needs.d.ts +32 -0
- package/dist/core/needs.d.ts.map +1 -0
- package/dist/core/needs.test.d.ts +2 -0
- package/dist/core/needs.test.d.ts.map +1 -0
- package/dist/core/parked-questions.d.ts +0 -1
- package/dist/core/parked-questions.d.ts.map +1 -1
- package/dist/core/parse/parser.d.ts.map +1 -1
- package/dist/core/parse/schemas.d.ts +4 -0
- package/dist/core/parse/schemas.d.ts.map +1 -1
- package/dist/core/roadmap.d.ts.map +1 -1
- package/dist/core/run-filters.d.ts +2 -0
- package/dist/core/run-filters.d.ts.map +1 -1
- package/dist/core/run-order.d.ts +5 -1
- package/dist/core/run-order.d.ts.map +1 -1
- package/dist/core/run-rows.d.ts.map +1 -1
- package/dist/core/scaffold/scaffold.d.ts +1 -0
- package/dist/core/scaffold/scaffold.d.ts.map +1 -1
- package/dist/core/scaffold/templates.d.ts +6 -0
- package/dist/core/scaffold/templates.d.ts.map +1 -1
- package/dist/core/sections.d.ts.map +1 -1
- package/dist/core/sections.test.d.ts +2 -0
- package/dist/core/sections.test.d.ts.map +1 -0
- package/dist/core/serialize/entity-file.d.ts +6 -2
- package/dist/core/serialize/entity-file.d.ts.map +1 -1
- package/dist/toolbar/toolbar.js +3192 -3187
- package/dist/toolbar/toolbar.js.map +1 -1
- package/dist/types/index.d.ts +70 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +16 -15
- package/dist/types/index.js.map +1 -1
- package/dist/vite/index.js +1 -1
- package/package.json +6 -2
- package/dist/chunks/daemon-state.BeDnhzBY.js.map +0 -1
- package/dist/chunks/phase-progress.2akB88O9.js +0 -3178
- package/dist/chunks/phase-progress.2akB88O9.js.map +0 -1
|
@@ -6,4 +6,10 @@ export declare function buildSessionStartCommand(hasDependency: boolean): string
|
|
|
6
6
|
export declare function mergeClaudeSettingsJson(existingContent: string, targetDir: string): string;
|
|
7
7
|
export declare function buildClaudeSettingsJson(targetDir: string): string;
|
|
8
8
|
export declare const SKILL_MD_CONTENT = "---\nname: paper-camp\ndescription: Work inside a project that has a papercamp/ folder \u2014 its unified idea entities (each holding its plan as a section), with decisions and open questions logged as notes on the idea they bind. Use this whenever the working directory contains papercamp/ (papercamp/ideas/), and especially before starting, continuing, or completing any plan phase, drafting an idea, logging a decision, or answering \"what are we working on / what's next\".\n---\n\n# Paper Camp\n\nPaper Camp is this project's planning methodology: plans and ideas are one\nthing, a unified entity file under `papercamp/ideas/`, with decisions and\nopen questions logged as notes bound to the idea they concern. This skill\ntells you how to read that state before acting and how to keep it honest as\nyou work.\n\nIf a `papercamp` MCP server is connected in this session, prefer its tools\n(list/get plans, update phase, etc.) over raw file access \u2014\nthey enforce the same guards (id allocation, branch conflicts) that the file\ngrammar below assumes. Everything in this skill still applies conceptually;\nonly the mechanism changes.\n\n## Before doing any work\n\nRead, in this order, whatever exists:\n\n1. `papercamp/ideas/` \u2014 one file per entity, named by id. Ideas and plans are\n one thing: an entity is an *idea* for its whole life, and its plan is a\n `### Phases` section inside the same file.\n2. The specific entity file at `papercamp/ideas/<ID>.md` (e.g. `IDEA-43.md`)\n for the work you're about to do \u2014 YAML frontmatter (`id`, `title`,\n `type`, `status`, `tags`, ...) plus prose rationale, then optionally a\n `### Phases` list of `- [ ]`/`- [x]` checkboxes with an indented\n description under each. Done/dropped entities live in\n `papercamp/ideas/archive/`.\n Its notes carry any decision or open question bound to it \u2014 settled calls\n you shouldn't re-litigate without flagging it to the user first, and\n unresolved questions that might block or redirect the work you're about\n to start.\n\nSkip files that don't exist yet (a fresh project may have empty logs).\n\n## While working\n\n- Work one plan phase at a time unless told otherwise \u2014 don't cascade into\n later phases just because they look quick.\n- If a phase's boundary or intent is unclear, ask before continuing.\n- Prose in plans and ideas is more current than your memory of past\n conversations. If they conflict, the files win \u2014 say so and resync.\n\n## Keep the project current as you go\n\n- **Plan phases**: when you finish a phase, flip its checkbox from `- [ ]` to\n `- [x]` in the plan's frontmatter file. Change only that line \u2014 don't touch\n other phases or prose.\n- **Plan status**: keep the plan's `status:` frontmatter honest\n (`planned` / `in-progress` / `review` / `done`). When every phase is\n checked, set status to `review` \u2014 never `done`. `done` is a human-only\n promotion after review; an agent finishing the last phase does not close\n the plan itself.\n- **Decisions / open questions**: if you settle something ambiguous while\n working, log it as a decision note on the idea it bounds; if you surface a\n question you can't resolve yourself, add it as a question note on that idea\n rather than guessing silently.\n\n## What this skill deliberately does not do\n\nIt does not maintain a separate \"current focus\" file \u2014 that's derived at\nsession start from live plan data, not hand-maintained here. It does\nnot define the file formats in full; treat the existing files under\n`papercamp/` as the grammar reference (mirror their structure exactly rather\nthan inventing a new shape).\n";
|
|
9
|
+
export declare const DRAFT_PR_TEMPLATE_VERSION = 1;
|
|
10
|
+
export declare const DRAFT_PR_WORKFLOW_HEADER = "# paper-camp draft-pr template v1";
|
|
11
|
+
export declare const PULL_REQUEST_TEMPLATE_HEADER = "<!-- paper-camp draft-pr template v1 -->";
|
|
12
|
+
export declare function draftPrTemplateVersion(content: string): number | null;
|
|
13
|
+
export declare const DRAFT_PR_WORKFLOW_CONTENT = "# paper-camp draft-pr template v1\nname: Draft PR\n\non:\n push:\n branches:\n - feat/*\n - fix/*\n - refactor/*\n - chore/*\n - docs/*\n\npermissions:\n contents: read\n pull-requests: write\n\njobs:\n draft-pr:\n name: Draft PR\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n with:\n persist-credentials: false\n\n - name: Generate Scout app token\n id: app-token\n uses: actions/create-github-app-token@v1\n with:\n app-id: ${{ secrets.SCOUT_APP_ID }}\n private-key: ${{ secrets.SCOUT_PRIVATE_KEY }}\n permission-contents: read\n permission-pull-requests: write\n\n - name: Create draft PR if not exists\n env:\n GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}\n BRANCH: ${{ github.ref_name }}\n run: |\n PLAN_ID=$(echo \"$BRANCH\" | grep -oP '[a-z]+-\\d+' | head -1 || true)\n if [ -z \"$PLAN_ID\" ]; then\n echo \"Branch '$BRANCH' does not match plan-ID pattern \u2014 skipping PR creation\"\n exit 0\n fi\n\n DISPLAY_ID=$(echo \"$PLAN_ID\" | sed 's/^\\([a-z]*\\)/\\U\\1/' | sed 's/\\-[a-z]/\\U&/')\n\n TEMPLATE=\".github/pull_request_template.md\"\n PLAN_FILE=\"papercamp/ideas/${DISPLAY_ID}.md\"\n if [ ! -f \"$PLAN_FILE\" ] && [ -f \"papercamp/ideas/archive/${DISPLAY_ID}.md\" ]; then\n PLAN_FILE=\"papercamp/ideas/archive/${DISPLAY_ID}.md\"\n fi\n\n TITLE=$(awk '\n /^---[[:space:]]*$/ { n++; next }\n n == 1 && /^title:[[:space:]]/ {\n sub(/^title:[[:space:]]*/, \"\")\n gsub(/^[\"'\\'']|[\"'\\'']$/, \"\")\n print\n exit\n }\n ' \"$PLAN_FILE\" 2>/dev/null || true)\n\n if [ -z \"$TITLE\" ]; then\n echo \"No title: in '$PLAN_FILE' \u2014 falling back to the branch slug\"\n TITLE=$(echo \"$BRANCH\" | sed 's|^[^/]*/||' | sed 's/^[a-z]*-[0-9]*-//' | sed 's/-/ /g')\n fi\n\n FULL_TITLE=\"${DISPLAY_ID}: ${TITLE}\"\n\n PHASES=$(awk '/^### Phases/{f=1;next} /^### /{f=0} f' \"$PLAN_FILE\" 2>/dev/null \\\n | grep -E '^- \\[[ x]\\] ' || true)\n if [ -z \"$PHASES\" ]; then\n PHASES=\"- [ ] _No phases listed in \\`${PLAN_FILE}\\` yet._\"\n fi\n\n EXISTING=$(gh pr list --head \"$BRANCH\" --state all --json number --jq '.[0].number' 2>/dev/null || echo \"\")\n\n if [ -z \"$EXISTING\" ]; then\n BODY=$(awk -v id=\"$DISPLAY_ID\" -v phases=\"$PHASES\" '\n /^- \\[ \\] _Phases go here/ { print phases; next }\n { gsub(/IDEA-N/, id); print }\n ' \"$TEMPLATE\")\n if [ -z \"$BODY\" ]; then\n BODY=\"**Idea:** \\`${DISPLAY_ID}\\` \u2014 \\`${PLAN_FILE}\\`\"\n fi\n gh pr create \\\n --title \"$FULL_TITLE\" \\\n --body \"$BODY\" \\\n --draft \\\n --base main\n echo \"Created draft PR for $FULL_TITLE\"\n else\n echo \"PR #$EXISTING already exists for branch '$BRANCH' \u2014 skipping\"\n fi\n";
|
|
14
|
+
export declare const PULL_REQUEST_TEMPLATE_CONTENT = "<!-- paper-camp draft-pr template v1 -->\n**Idea:** `IDEA-N` \u2014 `papercamp/ideas/IDEA-N.md`\n\n_One or two lines on what this idea changes, for whoever reviews it._\n\n### Phases\n\n- [ ] _Phases go here, copied from the idea file \u2014 one commit each._\n\n### Before merge\n\n- [ ] Every phase above is checked and the idea's `status:` is `review`\n- [ ] CI is green\n- [ ] Owner has walked the affected components through the live showcase\n\nSee [CONTRIBUTING.md](../blob/main/CONTRIBUTING.md) for the full flow.\n";
|
|
9
15
|
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/core/scaffold/templates.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAS7D,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAKtE;AAcD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAQjE;AAYD,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,EAAE,CAW9E;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB1F;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAqBjE;AAED,eAAO,MAAM,gBAAgB,smHAqE5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/core/scaffold/templates.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAS7D,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAKtE;AAcD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAQjE;AAYD,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,EAAE,CAW9E;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB1F;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAqBjE;AAED,eAAO,MAAM,gBAAgB,smHAqE5B,CAAC;AAIF,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,wBAAwB,sCAAiE,CAAC;AAEvG,eAAO,MAAM,4BAA4B,6CAAwE,CAAC;AAMlH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrE;AAED,eAAO,MAAM,yBAAyB,kvGAgGrC,CAAC;AAEF,eAAO,MAAM,6BAA6B,ghBAgBzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../src/core/sections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EAGV,SAAS,EACT,aAAa,
|
|
1
|
+
{"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../src/core/sections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EAGV,SAAS,EACT,aAAa,EAGd,MAAM,gBAAgB,CAAC;AAGxB,QAAA,MAAM,cAAc,QAAe,CAAC;AA0JpC;;;;;4EAK4E;AAC5E,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;IACnE,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CACzC;AAED,eAAO,MAAM,cAAc,EAAE,UAAU,CAAC,SAAS,CAIhD,CAAC;AAEF;8EAC8E;AAC9E,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,SAAS,CAI/C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,QAAQ,CAI5C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC,QAAQ,CAIvD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,UAAU,CAIhD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAAU,CAAC,QAAQ,CAI/C,CAAC;AA2EF,eAAO,MAAM,cAAc,EAAE,UAAU,CAAC,aAAa,CAIpD,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sections.test.d.ts","sourceRoot":"","sources":["../../src/core/sections.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { LogEntry, MarginNote, PhaseItem, SuggestionEntry, ThreadMessage } from '../../types/index';
|
|
1
|
+
import { LogEntry, MarginNote, PhaseItem, SuggestionEntry, ThreadMessage, ThreadMessageOption } from '../../types/index';
|
|
2
2
|
export declare function todayDateString(): string;
|
|
3
3
|
/** Every agent-authored thread message must carry `from: 'agent'` or it renders as the
|
|
4
4
|
* user's own message in the feedback chat — build them through here so it can't be forgotten. */
|
|
5
|
-
export declare function agentThreadMessage(text: string, kind?: ThreadMessage['kind'], entityId?: string
|
|
5
|
+
export declare function agentThreadMessage(text: string, kind?: ThreadMessage['kind'], entityId?: string, decision?: {
|
|
6
|
+
options?: ThreadMessageOption[];
|
|
7
|
+
context?: string;
|
|
8
|
+
}): ThreadMessage;
|
|
6
9
|
interface NewPlanInput {
|
|
7
10
|
title: string;
|
|
8
11
|
status: string;
|
|
@@ -54,6 +57,7 @@ interface NewEntityFileInput {
|
|
|
54
57
|
auditedHash?: string;
|
|
55
58
|
released?: string;
|
|
56
59
|
tags?: string[];
|
|
60
|
+
needs?: string[];
|
|
57
61
|
subject?: string;
|
|
58
62
|
order?: number;
|
|
59
63
|
issueSource?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-file.d.ts","sourceRoot":"","sources":["../../../src/core/serialize/entity-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,
|
|
1
|
+
{"version":3,"file":"entity-file.d.ts","sourceRoot":"","sources":["../../../src/core/serialize/entity-file.ts"],"names":[],"mappings":"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"}
|