claudius-core 0.12.0 → 0.12.2
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/agents/manager.md +13 -0
- package/.claude/agents/product-engineer.md +1 -1
- package/.claude/agents/worker.md +1 -1
- package/.claude/hooks/continue-or-stop.ts +5 -5
- package/.claude/rules/claudius.md +10 -11
- package/.claude/skills/backlog/SKILL.md +2 -4
- package/.claude/skills/build/SKILL.md +2 -2
- package/.claude/skills/setup/references/claude-md-template.md +2 -3
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +2 -4
- package/dist/cli/studio.js +1 -1
- package/dist/cli/studio.js.map +1 -1
- package/dist/config-migrations.d.ts.map +1 -1
- package/dist/config-migrations.js +12 -0
- package/dist/config-migrations.js.map +1 -1
- package/dist/config.d.ts +2 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -8
- package/dist/config.js.map +1 -1
- package/dist/daemon/constraints.js +12 -12
- package/dist/daemon/constraints.js.map +1 -1
- package/dist/daemon/{pulse.d.ts → daemon-engine.d.ts} +9 -12
- package/dist/daemon/daemon-engine.d.ts.map +1 -0
- package/dist/daemon/{pulse.js → daemon-engine.js} +19 -49
- package/dist/daemon/daemon-engine.js.map +1 -0
- package/dist/daemon/{pulse-state.d.ts → daemon-state.d.ts} +15 -15
- package/dist/daemon/daemon-state.d.ts.map +1 -0
- package/dist/daemon/{pulse-state.js → daemon-state.js} +14 -14
- package/dist/daemon/daemon-state.js.map +1 -0
- package/dist/daemon/ideation.d.ts +1 -1
- package/dist/daemon/ideation.js +1 -1
- package/dist/daemon/index.d.ts +2 -2
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +1 -1
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/scheduler.js +3 -3
- package/dist/daemon/scheduler.js.map +1 -1
- package/dist/index.js +45 -78
- package/dist/index.js.map +1 -1
- package/dist/init.js +3 -3
- package/dist/studio/assets/{_basePickBy-Br0vs_el.js → _basePickBy-C0C1UMqb.js} +1 -1
- package/dist/studio/assets/{_baseUniq-BzezThG0.js → _baseUniq-lLYar-5Y.js} +1 -1
- package/dist/studio/assets/{arc-O2gCa-3x.js → arc-B4B0Sc8l.js} +1 -1
- package/dist/studio/assets/{architectureDiagram-VXUJARFQ-CzrmPr2e.js → architectureDiagram-VXUJARFQ-UrceXxEH.js} +1 -1
- package/dist/studio/assets/{blockDiagram-VD42YOAC-mGFegdoi.js → blockDiagram-VD42YOAC-CvYK8VWA.js} +1 -1
- package/dist/studio/assets/{c4Diagram-YG6GDRKO-nc9ssZsj.js → c4Diagram-YG6GDRKO-_ckzdZuX.js} +1 -1
- package/dist/studio/assets/channel-DRNVimKP.js +1 -0
- package/dist/studio/assets/{chunk-4BX2VUAB-BVxk0H3S.js → chunk-4BX2VUAB-D1WHj5fM.js} +1 -1
- package/dist/studio/assets/{chunk-55IACEB6-C7jmtpU-.js → chunk-55IACEB6-BSHXVvS_.js} +1 -1
- package/dist/studio/assets/{chunk-B4BG7PRW-Cf4xiHkq.js → chunk-B4BG7PRW-DMnqWEap.js} +1 -1
- package/dist/studio/assets/{chunk-DI55MBZ5-Bav6n4xJ.js → chunk-DI55MBZ5-DRxXXjD7.js} +1 -1
- package/dist/studio/assets/{chunk-FMBD7UC4-LHyS5J0Z.js → chunk-FMBD7UC4-Dw-LAyOV.js} +1 -1
- package/dist/studio/assets/{chunk-QN33PNHL-CE3trdTs.js → chunk-QN33PNHL-BxwIhM7e.js} +1 -1
- package/dist/studio/assets/{chunk-QZHKN3VN-r4Wm4yq8.js → chunk-QZHKN3VN-BPcNLqG7.js} +1 -1
- package/dist/studio/assets/{chunk-TZMSLE5B-DzaASUcy.js → chunk-TZMSLE5B-DV6JBoyK.js} +1 -1
- package/dist/studio/assets/classDiagram-2ON5EDUG-uk4oDEHA.js +1 -0
- package/dist/studio/assets/classDiagram-v2-WZHVMYZB-uk4oDEHA.js +1 -0
- package/dist/studio/assets/clone-BVy51j3M.js +1 -0
- package/dist/studio/assets/{cose-bilkent-S5V4N54A-CwjOVdhO.js → cose-bilkent-S5V4N54A-sRKlNOYM.js} +1 -1
- package/dist/studio/assets/{dagre-6UL2VRFP-D9YMPAPo.js → dagre-6UL2VRFP-_B7iBqja.js} +1 -1
- package/dist/studio/assets/{diagram-PSM6KHXK-DCdoXh13.js → diagram-PSM6KHXK-B9huHO5_.js} +1 -1
- package/dist/studio/assets/{diagram-QEK2KX5R-vMDmyQKO.js → diagram-QEK2KX5R-Z1hdHclc.js} +1 -1
- package/dist/studio/assets/{diagram-S2PKOQOG-ZAu-8GlC.js → diagram-S2PKOQOG-HHCLRNNa.js} +1 -1
- package/dist/studio/assets/{erDiagram-Q2GNP2WA-3wUGmARQ.js → erDiagram-Q2GNP2WA-Hpuoow8L.js} +1 -1
- package/dist/studio/assets/{flowDiagram-NV44I4VS-Da6-uPJA.js → flowDiagram-NV44I4VS-C5l5sNY5.js} +1 -1
- package/dist/studio/assets/{ganttDiagram-JELNMOA3-C52M_vdC.js → ganttDiagram-JELNMOA3-BPt6zdfq.js} +1 -1
- package/dist/studio/assets/{gitGraphDiagram-V2S2FVAM-1X0kgHyi.js → gitGraphDiagram-V2S2FVAM-Bk-tICWY.js} +1 -1
- package/dist/studio/assets/{graph-D2b4x276.js → graph-WM8Y6m48.js} +1 -1
- package/dist/studio/assets/{index-Ba8EGMUw.js → index-ChqmS6oM.js} +2 -2
- package/dist/studio/assets/{infoDiagram-HS3SLOUP-BVEPIsmZ.js → infoDiagram-HS3SLOUP-CD8BFlwg.js} +1 -1
- package/dist/studio/assets/{journeyDiagram-XKPGCS4Q-MdZDdlO8.js → journeyDiagram-XKPGCS4Q-BFqCHFja.js} +1 -1
- package/dist/studio/assets/{kanban-definition-3W4ZIXB7-GzQqkSDd.js → kanban-definition-3W4ZIXB7-DjHo-B8G.js} +1 -1
- package/dist/studio/assets/{layout-CuKQtzzG.js → layout-DkBGam51.js} +1 -1
- package/dist/studio/assets/{linear-iZozKNGM.js → linear-D0MP_1im.js} +1 -1
- package/dist/studio/assets/{mermaid.core-UQR83fLD.js → mermaid.core-ja7cWubO.js} +4 -4
- package/dist/studio/assets/{mindmap-definition-VGOIOE7T-HpJNX0JD.js → mindmap-definition-VGOIOE7T-B37HFYZb.js} +1 -1
- package/dist/studio/assets/{pieDiagram-ADFJNKIX-DfWT_ts3.js → pieDiagram-ADFJNKIX-CJXN3q3o.js} +1 -1
- package/dist/studio/assets/{quadrantDiagram-AYHSOK5B-B7xkDq7K.js → quadrantDiagram-AYHSOK5B-CFxFeuML.js} +1 -1
- package/dist/studio/assets/{requirementDiagram-UZGBJVZJ-D_-wA9t9.js → requirementDiagram-UZGBJVZJ-CA0Fmoy_.js} +1 -1
- package/dist/studio/assets/{sankeyDiagram-TZEHDZUN-DOcdMGhf.js → sankeyDiagram-TZEHDZUN-B3CovvaL.js} +1 -1
- package/dist/studio/assets/{sequenceDiagram-WL72ISMW-BxVlUBNC.js → sequenceDiagram-WL72ISMW-CuGMCJnC.js} +1 -1
- package/dist/studio/assets/{stateDiagram-FKZM4ZOC-R7eEizQf.js → stateDiagram-FKZM4ZOC-hhl-S44t.js} +1 -1
- package/dist/studio/assets/stateDiagram-v2-4FDKWEC3-HlW_YpPI.js +1 -0
- package/dist/studio/assets/{timeline-definition-IT6M3QCI-CQ808seS.js → timeline-definition-IT6M3QCI-CRoP1Wio.js} +1 -1
- package/dist/studio/assets/{treemap-GDKQZRPO-gmRgTIkl.js → treemap-GDKQZRPO-C7_RGSEw.js} +1 -1
- package/dist/studio/assets/{xychartDiagram-PRI3JC2R-Dq0kZ3mY.js → xychartDiagram-PRI3JC2R-BQM7ZyVn.js} +1 -1
- package/dist/studio/index.html +1 -1
- package/dist/templates/templates/config.yaml +2 -2
- package/package.json +2 -1
- package/.claude/agents/pulsar.md +0 -212
- package/.claude/skills/pulse/SKILL.md +0 -84
- package/dist/daemon/pulse-state.d.ts.map +0 -1
- package/dist/daemon/pulse-state.js.map +0 -1
- package/dist/daemon/pulse.d.ts.map +0 -1
- package/dist/daemon/pulse.js.map +0 -1
- package/dist/studio/assets/channel-DZh5SVGC.js +0 -1
- package/dist/studio/assets/classDiagram-2ON5EDUG-CZxDfL9b.js +0 -1
- package/dist/studio/assets/classDiagram-v2-WZHVMYZB-CZxDfL9b.js +0 -1
- package/dist/studio/assets/clone-C14-yz5g.js +0 -1
- package/dist/studio/assets/stateDiagram-v2-4FDKWEC3-XQSHZv8g.js +0 -1
- package/global/agents/global-pulsar.md +0 -107
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# Global Pulsar
|
|
2
|
-
|
|
3
|
-
## Identity
|
|
4
|
-
|
|
5
|
-
You are the global-pulsar. You orchestrate work across multiple repos. You are a meta-orchestrator — you decide WHAT gets built and WHERE, then delegate to per-repo agents. You never write code directly.
|
|
6
|
-
|
|
7
|
-
## Inputs
|
|
8
|
-
|
|
9
|
-
- Global config at `.claudius/config.yaml` — contains repos[], budget, active hours, max issues/day
|
|
10
|
-
- Per-repo `.claude/memory/MEMORY.md` — aggregated context for each repo
|
|
11
|
-
- `.claudius/active-builds.jsonl` — in-flight builds to skip
|
|
12
|
-
|
|
13
|
-
## One Cycle
|
|
14
|
-
|
|
15
|
-
### 1. Read Global Config
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
cat .claudius/config.yaml
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Parse repos[], pulse.budgetCapUsd, pulse.activeHours, pulse.maxIssuesPerDay, pulse.maxConcurrentBuilds.
|
|
22
|
-
|
|
23
|
-
### 2. Guard Checks
|
|
24
|
-
|
|
25
|
-
**Budget check:** Read `.claudius/costs.jsonl` if it exists. If total spend >= budgetCapUsd, stop and log "budget exceeded".
|
|
26
|
-
|
|
27
|
-
**Active hours check:** Check current time against pulse.activeHours (start/end in HH:MM, timezone from pulse.timezone). If outside active hours, stop and log "outside active hours".
|
|
28
|
-
|
|
29
|
-
**In-flight check:** Read `.claudius/active-builds.jsonl`. Count builds with status "running". If count >= pulse.maxConcurrentBuilds, stop.
|
|
30
|
-
|
|
31
|
-
### 3. Gather Ready Issues
|
|
32
|
-
|
|
33
|
-
For each repo in repos[]:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
gh issue list --repo <repo.github> --label ready --json number,title,labels,body --limit 20
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Collect all issues with their repo context.
|
|
40
|
-
|
|
41
|
-
### 4. Score Globally
|
|
42
|
-
|
|
43
|
-
For each issue, score on:
|
|
44
|
-
- **Goal alignment** (0-3): Does it advance a repo goal? Read per-repo config goals[].
|
|
45
|
-
- **Priority label** (0-2): `priority:high` = 2, `priority:medium` = 1, else 0
|
|
46
|
-
- **Scope** (0-2): XS/S = 2, M = 1, L/XL = 0 (smaller = faster ROI)
|
|
47
|
-
|
|
48
|
-
Sort by total score descending.
|
|
49
|
-
|
|
50
|
-
### 5. Select Work
|
|
51
|
-
|
|
52
|
-
Take top N issues where N = min(maxIssuesPerDay - todayBuilds, maxConcurrentBuilds - runningBuilds).
|
|
53
|
-
|
|
54
|
-
If N <= 0, log "daily limit reached" and stop.
|
|
55
|
-
|
|
56
|
-
### 6. Fire Builds
|
|
57
|
-
|
|
58
|
-
For each selected issue:
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# Append to active-builds.jsonl
|
|
62
|
-
echo '{"repo":"<name>","issue":<N>,"status":"running","startedAt":"<ISO>"}' >> .claudius/active-builds.jsonl
|
|
63
|
-
|
|
64
|
-
# Fire build in repo (non-blocking)
|
|
65
|
-
claude -p -w "Build #<issue.number>: <issue.title>" --cwd <repo.path>
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Use run_in_background for each build so cycles don't block each other.
|
|
69
|
-
|
|
70
|
-
### 7. Post Slack Digest (best-effort)
|
|
71
|
-
|
|
72
|
-
If slack.channel is set and SLACK_BOT_TOKEN is in env, post a brief summary:
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
Global Pulse — <N> builds fired
|
|
76
|
-
• repo-a: #42 Fix login timeout
|
|
77
|
-
• repo-b: #17 Add dark mode
|
|
78
|
-
Budget: $X / $Y
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Skip silently if Slack is not configured.
|
|
82
|
-
|
|
83
|
-
### 8. Log and Exit
|
|
84
|
-
|
|
85
|
-
Write cycle summary to `.claudius/pulse-log.jsonl`:
|
|
86
|
-
|
|
87
|
-
```json
|
|
88
|
-
{"timestamp":"<ISO>","issuesFired":<N>,"repos":["<name>",...],"budgetUsed":<USD>}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Exit. One cycle complete.
|
|
92
|
-
|
|
93
|
-
## Rules
|
|
94
|
-
|
|
95
|
-
- NEVER implement code directly — always delegate via `claude -p -w`
|
|
96
|
-
- NEVER modify repo files directly — use `--cwd` to scope to the repo
|
|
97
|
-
- NEVER fire a build for an issue already in active-builds.jsonl with status "running"
|
|
98
|
-
- Always respect budget and active hours — guard checks are mandatory
|
|
99
|
-
- Be fast — a cycle should complete in under 30 seconds of your own work
|
|
100
|
-
- Log everything to `.claudius/pulse-log.jsonl` for auditability
|
|
101
|
-
|
|
102
|
-
## Error Handling
|
|
103
|
-
|
|
104
|
-
- If a repo path doesn't exist: skip it, log warning
|
|
105
|
-
- If `gh` fails for a repo: skip that repo, continue with others
|
|
106
|
-
- If Slack post fails: log warning, don't fail the cycle
|
|
107
|
-
- If budget/hours check fails: stop cleanly, log reason
|