runcastle 1.6.3 → 1.6.4

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 (60) hide show
  1. package/README.md +4 -4
  2. package/bin/runcastle.js +13200 -61414
  3. package/drizzle/0057_jazzy_lila_cheney.sql +1 -0
  4. package/drizzle/0058_test_note_open_only.sql +9 -0
  5. package/drizzle/0059_milky_black_knight.sql +17 -0
  6. package/drizzle/0060_drop_prepare_sessions.sql +6 -0
  7. package/drizzle/0061_events_type_index.sql +4 -0
  8. package/drizzle/0062_workers.sql +30 -0
  9. package/drizzle/0063_worker_dev_server.sql +1 -0
  10. package/drizzle/0064_worker_tokens.sql +1 -0
  11. package/drizzle/0065_review_workers.sql +28 -0
  12. package/drizzle/0066_drive_workers.sql +39 -0
  13. package/drizzle/meta/0057_snapshot.json +1351 -0
  14. package/drizzle/meta/0059_snapshot.json +1461 -0
  15. package/drizzle/meta/0062_snapshot.json +1654 -0
  16. package/drizzle/meta/0063_snapshot.json +1662 -0
  17. package/drizzle/meta/0064_snapshot.json +1669 -0
  18. package/drizzle/meta/0065_snapshot.json +1690 -0
  19. package/drizzle/meta/0066_snapshot.json +1704 -0
  20. package/drizzle/meta/_journal.json +70 -0
  21. package/index.js +12480 -60694
  22. package/package.json +2 -3
  23. package/skills/packs/README.md +11 -15
  24. package/skills/packs/runcastle/.claude-plugin/plugin.json +1 -1
  25. package/skills/packs/runcastle/skills/code-review/SKILL.md +3 -3
  26. package/skills/packs/runcastle/skills/feature/SKILL.md +37 -18
  27. package/skills/packs/runcastle/skills/feature/references/design.md +102 -127
  28. package/skills/packs/runcastle/skills/feature/references/grilling.md +9 -3
  29. package/skills/packs/runcastle/skills/feature/references/planning-alone.md +69 -38
  30. package/skills/packs/runcastle/skills/feature/references/preview-starter.html +22 -20
  31. package/skills/packs/runcastle/skills/feature/references/preview.md +45 -27
  32. package/skills/packs/runcastle/skills/feature/references/spec.md +1 -1
  33. package/skills/packs/runcastle/skills/feature/references/workers.md +144 -0
  34. package/skills/packs/runcastle/skills/project/SKILL.md +64 -201
  35. package/skills/packs/runcastle/skills/project/references/charter.md +3 -3
  36. package/skills/packs/runcastle/skills/project/references/health-sweeps.md +3 -3
  37. package/skills/packs/runcastle/skills/project/references/intake.md +139 -0
  38. package/skills/packs/runcastle/skills/{prepare/references/recipes.md → project/references/preparation-recipes.md} +2 -2
  39. package/skills/packs/runcastle/skills/project/references/preparation.md +176 -0
  40. package/skills/packs/runcastle/skills/project/references/routing.md +39 -0
  41. package/skills/packs/runcastle/skills/project/references/triage.md +3 -3
  42. package/skills/packs/runcastle/skills/qa/SKILL.md +5 -7
  43. package/skills/review/review-drive.md +33 -0
  44. package/skills/review/review-gates.md +22 -0
  45. package/skills/review/review.md +61 -0
  46. package/skills/review/verify.md +31 -0
  47. package/web/assets/index-C0TYj0Ka.css +1 -0
  48. package/web/assets/index-C6JVtDiw.js +193 -0
  49. package/web/index.html +3 -3
  50. package/web/manifest.webmanifest +2 -2
  51. package/web/sw.js +4 -4
  52. package/skills/burner/implement-ticket.md +0 -118
  53. package/skills/burner/resolve-conflict.md +0 -78
  54. package/skills/burner/review-ticket.md +0 -268
  55. package/skills/burner/verify-fixes.md +0 -59
  56. package/skills/packs/runcastle/skills/feature/references/rounds.md +0 -97
  57. package/skills/packs/runcastle/skills/feature/references/tickets.md +0 -231
  58. package/skills/packs/runcastle/skills/prepare/SKILL.md +0 -148
  59. package/web/assets/index-CHxfwKvB.js +0 -193
  60. package/web/assets/index-CVCnjOHN.css +0 -1
@@ -0,0 +1 @@
1
+ ALTER TABLE `features` ADD `waiting_kind` text;
@@ -0,0 +1,9 @@
1
+ -- Test notes keep one status, `open` (small-fixes-before-publish, spec "5 and 6").
2
+ -- Nothing writes `done`, `promoted` or `carried` any more. Such a note was dealt
3
+ -- with long ago, so it is stamped sent: it reads as open again but is never sent.
4
+ UPDATE `test_notes`
5
+ SET `sent_at` = COALESCE(`sent_at`, `created_at`)
6
+ WHERE `status` IN ('done', 'promoted', 'carried');--> statement-breakpoint
7
+ UPDATE `test_notes`
8
+ SET `status` = 'open'
9
+ WHERE `status` IN ('done', 'promoted', 'carried');
@@ -0,0 +1,17 @@
1
+ CREATE TABLE `designs` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `feature_id` text NOT NULL,
4
+ `path` text NOT NULL,
5
+ `title` text NOT NULL,
6
+ `width` integer,
7
+ `picture` text,
8
+ `state` text NOT NULL,
9
+ `approved_by` text,
10
+ `shown_at` integer NOT NULL,
11
+ `seen_at` integer,
12
+ `created_at` integer NOT NULL
13
+ );
14
+ --> statement-breakpoint
15
+ CREATE UNIQUE INDEX `designs_feature_path` ON `designs` (`feature_id`,`path`);--> statement-breakpoint
16
+ ALTER TABLE `features` ADD `plan_shown_at` integer;--> statement-breakpoint
17
+ ALTER TABLE `features` ADD `plan_seen_at` integer;
@@ -0,0 +1,6 @@
1
+ -- The `prepare` session kind is gone (the-orchestrator-prepares-the-project,
2
+ -- decision 13): the orchestrator prepares the project itself. Old preparation
3
+ -- chats are deleted. What they established lives on in `project_findings` and
4
+ -- the project's prepared columns, which this does not touch. No other table
5
+ -- references a session row; their events stay on the project timeline.
6
+ DELETE FROM `sessions` WHERE `kind` = 'prepare';
@@ -0,0 +1,4 @@
1
+ -- The token count reads each conversation's launch records — `session.launching`
2
+ -- and `session.purpose_set` events — at every turn's end (honest-token-counts,
3
+ -- decisions 1 and 3). The events table only grows, so the lookup goes by type.
4
+ CREATE INDEX `events_type_idx` ON `events` (`type`);
@@ -0,0 +1,30 @@
1
+ -- Interactive workers: one row per worker, keyed by its thread's session id
2
+ -- (docs/features/interactive-workers). Replaces the prototype's JSON files.
3
+ CREATE TABLE `workers` (
4
+ `id` text PRIMARY KEY NOT NULL,
5
+ `feature_id` text NOT NULL,
6
+ `label` text NOT NULL,
7
+ `purpose` text NOT NULL,
8
+ `kind` text NOT NULL,
9
+ `goal` text,
10
+ `done_when` text,
11
+ `model` text NOT NULL,
12
+ `runtime` text NOT NULL,
13
+ `started_by` text NOT NULL,
14
+ `status` text NOT NULL,
15
+ `failure` text,
16
+ `engine` text NOT NULL,
17
+ `container` text,
18
+ `branch` text,
19
+ `feature_branch` text NOT NULL,
20
+ `preview_port` integer,
21
+ `handback_summary` text,
22
+ `handback_commits` text,
23
+ `handback_files` text,
24
+ `outcome` text,
25
+ `outcome_note` text,
26
+ `created_at` integer NOT NULL,
27
+ `updated_at` integer NOT NULL
28
+ );
29
+ --> statement-breakpoint
30
+ CREATE INDEX `workers_feature` ON `workers` (`feature_id`);
@@ -0,0 +1 @@
1
+ ALTER TABLE `workers` ADD `dev_server` integer DEFAULT false NOT NULL;
@@ -0,0 +1 @@
1
+ ALTER TABLE `workers` ADD `tokens` integer;
@@ -0,0 +1,28 @@
1
+ PRAGMA foreign_keys=OFF;--> statement-breakpoint
2
+ CREATE TABLE `__new_review_findings` (
3
+ `id` text PRIMARY KEY NOT NULL,
4
+ `feature_id` text NOT NULL,
5
+ `review_ticket_id` text,
6
+ `review_worker_id` text,
7
+ `kind` text NOT NULL,
8
+ `severity` text NOT NULL,
9
+ `title` text NOT NULL,
10
+ `location` text NOT NULL,
11
+ `citation` text NOT NULL,
12
+ `detail` text NOT NULL,
13
+ `repro_step` text NOT NULL,
14
+ `status` text NOT NULL,
15
+ `open_reason` text,
16
+ `failure_reason` text,
17
+ `fix_ticket_id` text,
18
+ `resolved_by` text,
19
+ `resolution_note` text,
20
+ `created_at` integer NOT NULL
21
+ );
22
+ --> statement-breakpoint
23
+ INSERT INTO `__new_review_findings`("id", "feature_id", "review_ticket_id", "review_worker_id", "kind", "severity", "title", "location", "citation", "detail", "repro_step", "status", "open_reason", "failure_reason", "fix_ticket_id", "resolved_by", "resolution_note", "created_at") SELECT "id", "feature_id", "review_ticket_id", NULL, "kind", "severity", "title", "location", "citation", "detail", "repro_step", "status", "open_reason", "failure_reason", "fix_ticket_id", "resolved_by", "resolution_note", "created_at" FROM `review_findings`;--> statement-breakpoint
24
+ DROP TABLE `review_findings`;--> statement-breakpoint
25
+ ALTER TABLE `__new_review_findings` RENAME TO `review_findings`;--> statement-breakpoint
26
+ PRAGMA foreign_keys=ON;--> statement-breakpoint
27
+ ALTER TABLE `workers` ADD `review_mode` text;--> statement-breakpoint
28
+ ALTER TABLE `workers` ADD `review_verify` text;
@@ -0,0 +1,39 @@
1
+ PRAGMA foreign_keys=OFF;--> statement-breakpoint
2
+ CREATE TABLE `__new_workers` (
3
+ `id` text PRIMARY KEY NOT NULL,
4
+ `feature_id` text,
5
+ `project_id` text NOT NULL,
6
+ `label` text NOT NULL,
7
+ `purpose` text NOT NULL,
8
+ `kind` text NOT NULL,
9
+ `goal` text,
10
+ `done_when` text,
11
+ `model` text NOT NULL,
12
+ `runtime` text NOT NULL,
13
+ `started_by` text NOT NULL,
14
+ `status` text NOT NULL,
15
+ `failure` text,
16
+ `engine` text NOT NULL,
17
+ `container` text,
18
+ `branch` text,
19
+ `feature_branch` text NOT NULL,
20
+ `preview_port` integer,
21
+ `dev_server` integer DEFAULT false NOT NULL,
22
+ `handback_summary` text,
23
+ `handback_commits` text,
24
+ `handback_files` text,
25
+ `outcome` text,
26
+ `outcome_note` text,
27
+ `tokens` integer,
28
+ `review_mode` text,
29
+ `review_verify` text,
30
+ `created_at` integer NOT NULL,
31
+ `updated_at` integer NOT NULL
32
+ );
33
+ --> statement-breakpoint
34
+ INSERT INTO `__new_workers`("id", "feature_id", "project_id", "label", "purpose", "kind", "goal", "done_when", "model", "runtime", "started_by", "status", "failure", "engine", "container", "branch", "feature_branch", "preview_port", "dev_server", "handback_summary", "handback_commits", "handback_files", "outcome", "outcome_note", "tokens", "review_mode", "review_verify", "created_at", "updated_at") SELECT `workers`."id", `workers`."feature_id", `features`."project_id", `workers`."label", `workers`."purpose", `workers`."kind", `workers`."goal", `workers`."done_when", `workers`."model", `workers`."runtime", `workers`."started_by", `workers`."status", `workers`."failure", `workers`."engine", `workers`."container", `workers`."branch", `workers`."feature_branch", `workers`."preview_port", `workers`."dev_server", `workers`."handback_summary", `workers`."handback_commits", `workers`."handback_files", `workers`."outcome", `workers`."outcome_note", `workers`."tokens", `workers`."review_mode", `workers`."review_verify", `workers`."created_at", `workers`."updated_at" FROM `workers` INNER JOIN `features` ON `features`."id" = `workers`."feature_id";--> statement-breakpoint
35
+ DROP TABLE `workers`;--> statement-breakpoint
36
+ ALTER TABLE `__new_workers` RENAME TO `workers`;--> statement-breakpoint
37
+ PRAGMA foreign_keys=ON;--> statement-breakpoint
38
+ CREATE INDEX `workers_feature` ON `workers` (`feature_id`);--> statement-breakpoint
39
+ CREATE INDEX `workers_project` ON `workers` (`project_id`);