panopticon-cli 0.5.9 → 0.5.10

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 (70) hide show
  1. package/dist/{agents-M2ZOZL3P.js → agents-MOMDECON.js} +3 -3
  2. package/dist/{archive-planning-U3AZAKWI.js → archive-planning-54J6EP6A.js} +3 -3
  3. package/dist/{chunk-3WDSD2VK.js → chunk-4OQ4SXQZ.js} +186 -88
  4. package/dist/chunk-4OQ4SXQZ.js.map +1 -0
  5. package/dist/{chunk-KPGVCGST.js → chunk-BHRMW7BY.js} +7 -3
  6. package/dist/chunk-BHRMW7BY.js.map +1 -0
  7. package/dist/{chunk-WEQW3EAT.js → chunk-F4XS2FQN.js} +3 -2
  8. package/dist/chunk-F4XS2FQN.js.map +1 -0
  9. package/dist/{chunk-OJF4QS3S.js → chunk-GIW2TUWI.js} +2 -2
  10. package/dist/{chunk-GM22HPYS.js → chunk-H7T35QDO.js} +21 -3
  11. package/dist/chunk-H7T35QDO.js.map +1 -0
  12. package/dist/{chunk-MJXYTGK5.js → chunk-JZWCL5S5.js} +2 -2
  13. package/dist/{chunk-4R6ATXYI.js → chunk-PFA5XE2V.js} +1 -37
  14. package/dist/chunk-PFA5XE2V.js.map +1 -0
  15. package/dist/{chunk-6OYUJ4AJ.js → chunk-R47UJWF6.js} +2 -2
  16. package/dist/{chunk-QQ27EVBD.js → chunk-RCYJK3ZC.js} +3 -3
  17. package/dist/{chunk-R4KPLLRB.js → chunk-SFX3BG6N.js} +1 -1
  18. package/dist/chunk-SFX3BG6N.js.map +1 -0
  19. package/dist/clean-planning-V4SSVU26.js +9 -0
  20. package/dist/cli/index.js +1111 -901
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/close-issue-5OMOP2FU.js +9 -0
  23. package/dist/compact-beads-YQDVF6FQ.js +9 -0
  24. package/dist/dashboard/prompts/merge-agent.md +11 -0
  25. package/dist/dashboard/prompts/review-agent.md +9 -0
  26. package/dist/dashboard/prompts/test-agent.md +9 -0
  27. package/dist/dashboard/prompts/work-agent.md +10 -2
  28. package/dist/dashboard/public/assets/index-5hYjhhGn.js +826 -0
  29. package/dist/dashboard/public/assets/index-DIFh3T1V.css +32 -0
  30. package/dist/dashboard/public/index.html +2 -2
  31. package/dist/dashboard/server.js +2402 -1753
  32. package/dist/index.d.ts +8 -3
  33. package/dist/index.js +3 -3
  34. package/dist/{label-cleanup-4HJVX6NP.js → label-cleanup-4IVZIPGK.js} +2 -2
  35. package/dist/{merge-agent-756U4NPX.js → merge-agent-6YOMGQMX.js} +12 -12
  36. package/dist/{specialist-context-UBVUUFJV.js → specialist-context-GVF4DV3M.js} +3 -3
  37. package/dist/{specialist-logs-FQRI3AIS.js → specialist-logs-W47SAAIU.js} +3 -3
  38. package/dist/{specialists-CXRGSJY3.js → specialists-SIXRWCZ3.js} +3 -3
  39. package/dist/{workspace-manager-OWHLR5BL.js → workspace-manager-Z57ROWBQ.js} +2 -2
  40. package/package.json +1 -1
  41. package/skills/pan-new-project/SKILL.md +1 -1
  42. package/skills/pan-oversee/SKILL.md +45 -10
  43. package/skills/plan/SKILL.md +336 -0
  44. package/dist/chunk-3WDSD2VK.js.map +0 -1
  45. package/dist/chunk-4R6ATXYI.js.map +0 -1
  46. package/dist/chunk-GM22HPYS.js.map +0 -1
  47. package/dist/chunk-KPGVCGST.js.map +0 -1
  48. package/dist/chunk-R4KPLLRB.js.map +0 -1
  49. package/dist/chunk-WEQW3EAT.js.map +0 -1
  50. package/dist/clean-planning-7Z5YY64X.js +0 -9
  51. package/dist/close-issue-CTZK777I.js +0 -9
  52. package/dist/compact-beads-72SHALOL.js +0 -9
  53. package/dist/dashboard/public/assets/index-Bx4NCn9A.css +0 -32
  54. package/dist/dashboard/public/assets/index-DqPey4Of.js +0 -756
  55. package/skills/opus-plan/SKILL.md +0 -400
  56. /package/dist/{agents-M2ZOZL3P.js.map → agents-MOMDECON.js.map} +0 -0
  57. /package/dist/{archive-planning-U3AZAKWI.js.map → archive-planning-54J6EP6A.js.map} +0 -0
  58. /package/dist/{chunk-OJF4QS3S.js.map → chunk-GIW2TUWI.js.map} +0 -0
  59. /package/dist/{chunk-MJXYTGK5.js.map → chunk-JZWCL5S5.js.map} +0 -0
  60. /package/dist/{chunk-6OYUJ4AJ.js.map → chunk-R47UJWF6.js.map} +0 -0
  61. /package/dist/{chunk-QQ27EVBD.js.map → chunk-RCYJK3ZC.js.map} +0 -0
  62. /package/dist/{clean-planning-7Z5YY64X.js.map → clean-planning-V4SSVU26.js.map} +0 -0
  63. /package/dist/{close-issue-CTZK777I.js.map → close-issue-5OMOP2FU.js.map} +0 -0
  64. /package/dist/{compact-beads-72SHALOL.js.map → compact-beads-YQDVF6FQ.js.map} +0 -0
  65. /package/dist/{label-cleanup-4HJVX6NP.js.map → label-cleanup-4IVZIPGK.js.map} +0 -0
  66. /package/dist/{merge-agent-756U4NPX.js.map → merge-agent-6YOMGQMX.js.map} +0 -0
  67. /package/dist/{specialist-context-UBVUUFJV.js.map → specialist-context-GVF4DV3M.js.map} +0 -0
  68. /package/dist/{specialist-logs-FQRI3AIS.js.map → specialist-logs-W47SAAIU.js.map} +0 -0
  69. /package/dist/{specialists-CXRGSJY3.js.map → specialists-SIXRWCZ3.js.map} +0 -0
  70. /package/dist/{workspace-manager-OWHLR5BL.js.map → workspace-manager-Z57ROWBQ.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -390,9 +390,14 @@ interface MigrationResult {
390
390
  * .panopticon directories. Removes only those symlinks, preserving any
391
391
  * user-created content (real files/directories).
392
392
  *
393
- * This is safe to run multiple times — it's a no-op if no symlinks remain.
393
+ * This is safe to run multiple times — it's a no-op if nothing remains to clean up.
394
+ *
395
+ * Removes two kinds of stale Panopticon content from ~/.claude/:
396
+ * 1. Symlinks pointing to .panopticon or panopticon-cli (legacy sync method)
397
+ * 2. Plain directories that also exist in the devroot (stale copies from before
398
+ * the devroot migration — these cause duplicate skill listings)
394
399
  */
395
- declare function migrateFromPersonalSymlinks(): MigrationResult;
400
+ declare function migrateStalePersonalContent(): MigrationResult;
396
401
  interface RefreshCacheResult {
397
402
  skills: {
398
403
  copied: number;
@@ -849,4 +854,4 @@ declare function setupCredentialFileAuth(provider: ProviderConfig, workspacePath
849
854
  */
850
855
  declare function clearCredentialFileAuth(workspacePath: string): void;
851
856
 
852
- export { AGENTS_DIR, ARCHIVES_DIR, type AnthropicModel, type ApiKeysConfig, BACKUPS_DIR, BIN_DIR, type BackupInfo, CACHE_AGENTS_DIR, CACHE_MANIFEST, CACHE_RULES_DIR, CACHE_SKILLS_DIR, CERTS_DIR, CLAUDE_DIR, CLAUDE_MD_TEMPLATES, COMMANDS_DIR, CONFIG_DIR, CONFIG_FILE, COSTS_DIR, type Comment, type ComplexityLevel, type ComplexityModels, DOCS_DIR, type DevrootSyncItem, type GitHubConfig, GitHubTracker, type GitLabConfig, GitLabTracker, type GoogleModel, HEARTBEATS_DIR, type HookItem, INIT_DIRS, type Issue, type IssueFilters, IssueNotFoundError, type IssueState, type IssueTracker, type IssueUpdate, type KimiModel, LEGACY_RUNTIME_DIRS, type LinearConfig, LinearTracker, type LinkDirection, LinkManager, type MigrationResult, type ModelId, type ModelsConfig, type NewIssue, NotImplementedError, type OpenAIModel, PANOPTICON_HOME, PRDS_DIR, PRD_DRAFTS_DIR, PRD_PUBLISHED_DIR, PROJECT_DOCS_SUBDIR, PROJECT_PRDS_ACTIVE_SUBDIR, PROJECT_PRDS_COMPLETED_SUBDIR, PROJECT_PRDS_PLANNED_SUBDIR, PROJECT_PRDS_SUBDIR, PROVIDERS, type PanopticonConfig, type ProviderAuthType, type ProviderCompatibility, type ProviderConfig, type ProviderName, type RallyConfig, type RefreshCacheResult, type RemoteConfig, type RemoteFlyConfig, SETTINGS_FILE, SKILLS_DIR, SOURCE_AGENTS_DIR, SOURCE_DEV_SKILLS_DIR, SOURCE_RULES_DIR, SOURCE_SCRIPTS_DIR, SOURCE_SKILLS_DIR, SOURCE_TEMPLATES_DIR, SOURCE_TRAEFIK_TEMPLATES, SYNC_TARGET, type SettingsConfig, type ShadowConfig, type Shell, type SpecialistModels, type SyncItem, type SyncOptions, type SyncPlan, type SyncResult, TEMPLATES_DIR, TRAEFIK_CERTS_DIR, TRAEFIK_DIR, TRAEFIK_DYNAMIC_DIR, TrackerAuthError, type TrackerConfig, type TrackerConfigItem, type TrackerLink, type TrackerType, type TrackersConfig, type ZAIModel, addAlias, cleanOldBackups, clearCredentialFileAuth, createBackup, createBackupTimestamp, createTracker, createTrackerFromConfig, detectShell, executeSync, findDevrootForProject, formatIssueRef, getAgentCommand, getAliasInstructions, getAllTrackers, getAvailableModels, getClaudeModelFlag, getDashboardApiUrl, getDefaultConfig, getDefaultSettings, getDevrootPath, getDirectProviders, getLinkManager, getPanopticonHome, getPrimaryTracker, getProviderEnv, getProviderForModel, getRouterProviders, getSecondaryTracker, getShellRcFile, hasAlias, isAnthropicModel, isDevMode, isPanopticonSymlink, listBackups, loadConfig, loadSettings, migrateFromPersonalSymlinks, needsRouter, parseIssueRef, planHooksSync, planSync, refreshCache, requiresRouter, restoreBackup, saveConfig, saveSettings, setupCredentialFileAuth, syncHooks, syncStatusline, validateSettings };
857
+ export { AGENTS_DIR, ARCHIVES_DIR, type AnthropicModel, type ApiKeysConfig, BACKUPS_DIR, BIN_DIR, type BackupInfo, CACHE_AGENTS_DIR, CACHE_MANIFEST, CACHE_RULES_DIR, CACHE_SKILLS_DIR, CERTS_DIR, CLAUDE_DIR, CLAUDE_MD_TEMPLATES, COMMANDS_DIR, CONFIG_DIR, CONFIG_FILE, COSTS_DIR, type Comment, type ComplexityLevel, type ComplexityModels, DOCS_DIR, type DevrootSyncItem, type GitHubConfig, GitHubTracker, type GitLabConfig, GitLabTracker, type GoogleModel, HEARTBEATS_DIR, type HookItem, INIT_DIRS, type Issue, type IssueFilters, IssueNotFoundError, type IssueState, type IssueTracker, type IssueUpdate, type KimiModel, LEGACY_RUNTIME_DIRS, type LinearConfig, LinearTracker, type LinkDirection, LinkManager, type MigrationResult, type ModelId, type ModelsConfig, type NewIssue, NotImplementedError, type OpenAIModel, PANOPTICON_HOME, PRDS_DIR, PRD_DRAFTS_DIR, PRD_PUBLISHED_DIR, PROJECT_DOCS_SUBDIR, PROJECT_PRDS_ACTIVE_SUBDIR, PROJECT_PRDS_COMPLETED_SUBDIR, PROJECT_PRDS_PLANNED_SUBDIR, PROJECT_PRDS_SUBDIR, PROVIDERS, type PanopticonConfig, type ProviderAuthType, type ProviderCompatibility, type ProviderConfig, type ProviderName, type RallyConfig, type RefreshCacheResult, type RemoteConfig, type RemoteFlyConfig, SETTINGS_FILE, SKILLS_DIR, SOURCE_AGENTS_DIR, SOURCE_DEV_SKILLS_DIR, SOURCE_RULES_DIR, SOURCE_SCRIPTS_DIR, SOURCE_SKILLS_DIR, SOURCE_TEMPLATES_DIR, SOURCE_TRAEFIK_TEMPLATES, SYNC_TARGET, type SettingsConfig, type ShadowConfig, type Shell, type SpecialistModels, type SyncItem, type SyncOptions, type SyncPlan, type SyncResult, TEMPLATES_DIR, TRAEFIK_CERTS_DIR, TRAEFIK_DIR, TRAEFIK_DYNAMIC_DIR, TrackerAuthError, type TrackerConfig, type TrackerConfigItem, type TrackerLink, type TrackerType, type TrackersConfig, type ZAIModel, addAlias, cleanOldBackups, clearCredentialFileAuth, createBackup, createBackupTimestamp, createTracker, createTrackerFromConfig, detectShell, executeSync, findDevrootForProject, formatIssueRef, getAgentCommand, getAliasInstructions, getAllTrackers, getAvailableModels, getClaudeModelFlag, getDashboardApiUrl, getDefaultConfig, getDefaultSettings, getDevrootPath, getDirectProviders, getLinkManager, getPanopticonHome, getPrimaryTracker, getProviderEnv, getProviderForModel, getRouterProviders, getSecondaryTracker, getShellRcFile, hasAlias, isAnthropicModel, isDevMode, isPanopticonSymlink, listBackups, loadConfig, loadSettings, migrateStalePersonalContent, needsRouter, parseIssueRef, planHooksSync, planSync, refreshCache, requiresRouter, restoreBackup, saveConfig, saveSettings, setupCredentialFileAuth, syncHooks, syncStatusline, validateSettings };
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  hasAlias,
14
14
  isPanopticonSymlink,
15
15
  listBackups,
16
- migrateFromPersonalSymlinks,
16
+ migrateStalePersonalContent,
17
17
  parseIssueRef,
18
18
  planHooksSync,
19
19
  planSync,
@@ -21,7 +21,7 @@ import {
21
21
  restoreBackup,
22
22
  syncHooks,
23
23
  syncStatusline
24
- } from "./chunk-GM22HPYS.js";
24
+ } from "./chunk-H7T35QDO.js";
25
25
  import "./chunk-AQXETQHW.js";
26
26
  import {
27
27
  PROVIDERS,
@@ -213,7 +213,7 @@ export {
213
213
  listBackups,
214
214
  loadConfig,
215
215
  loadSettings,
216
- migrateFromPersonalSymlinks,
216
+ migrateStalePersonalContent,
217
217
  needsRouter,
218
218
  parseIssueRef,
219
219
  planHooksSync,
@@ -3,7 +3,7 @@ import {
3
3
  stepFailed,
4
4
  stepOk,
5
5
  stepSkipped
6
- } from "./chunk-R4KPLLRB.js";
6
+ } from "./chunk-SFX3BG6N.js";
7
7
  import {
8
8
  init_esm_shims
9
9
  } from "./chunk-ZHC57RCV.js";
@@ -100,4 +100,4 @@ async function cleanupLabelsLinear(ctx, apiKey) {
100
100
  export {
101
101
  cleanupMergedLabels
102
102
  };
103
- //# sourceMappingURL=label-cleanup-4HJVX6NP.js.map
103
+ //# sourceMappingURL=label-cleanup-4IVZIPGK.js.map
@@ -8,13 +8,13 @@ import {
8
8
  recordWake,
9
9
  spawnEphemeralSpecialist,
10
10
  wakeSpecialist
11
- } from "./chunk-3WDSD2VK.js";
11
+ } from "./chunk-4OQ4SXQZ.js";
12
12
  import "./chunk-JQBV3Q2W.js";
13
13
  import {
14
14
  init_workspace_config,
15
15
  replacePlaceholders
16
16
  } from "./chunk-AAP4G6U7.js";
17
- import "./chunk-4R6ATXYI.js";
17
+ import "./chunk-PFA5XE2V.js";
18
18
  import "./chunk-USYP2SBE.js";
19
19
  import {
20
20
  init_config,
@@ -534,7 +534,7 @@ async function postMergeLifecycle(issueId, projectPath) {
534
534
  }
535
535
  console.log(`[merge-agent] Running post-merge cleanup for ${issueId}`);
536
536
  try {
537
- const { movePrd } = await import("./archive-planning-U3AZAKWI.js");
537
+ const { movePrd } = await import("./archive-planning-54J6EP6A.js");
538
538
  const prdResult = await movePrd({ issueId, projectPath });
539
539
  if (prdResult.success && !prdResult.skipped) {
540
540
  console.log(`[merge-agent] \u2713 ${prdResult.details?.join("; ")}`);
@@ -548,7 +548,7 @@ async function postMergeLifecycle(issueId, projectPath) {
548
548
  console.warn(`[merge-agent] Could not move PRD: ${err}`);
549
549
  }
550
550
  try {
551
- const { cleanPlanningArtifacts } = await import("./clean-planning-7Z5YY64X.js");
551
+ const { cleanPlanningArtifacts } = await import("./clean-planning-V4SSVU26.js");
552
552
  const cleanResult = await cleanPlanningArtifacts({ issueId, projectPath });
553
553
  if (cleanResult.success && !cleanResult.skipped) {
554
554
  console.log(`[merge-agent] \u2713 ${cleanResult.details?.join("; ")}`);
@@ -563,7 +563,7 @@ async function postMergeLifecycle(issueId, projectPath) {
563
563
  }
564
564
  closeIssueWithCircuitBreaker(issueId, projectPath);
565
565
  try {
566
- const { cleanupMergedLabels } = await import("./label-cleanup-4HJVX6NP.js");
566
+ const { cleanupMergedLabels } = await import("./label-cleanup-4IVZIPGK.js");
567
567
  const ghResolved = resolveGitHubIssue(issueId);
568
568
  const labelCtx = ghResolved.isGitHub ? { issueId, projectPath, github: { owner: ghResolved.owner, repo: ghResolved.repo, number: ghResolved.number } } : { issueId, projectPath };
569
569
  const labelResult = await cleanupMergedLabels(labelCtx);
@@ -579,7 +579,7 @@ async function postMergeLifecycle(issueId, projectPath) {
579
579
  console.warn(`[merge-agent] Could not clean labels: ${err}`);
580
580
  }
581
581
  try {
582
- const { compactBeads } = await import("./compact-beads-72SHALOL.js");
582
+ const { compactBeads } = await import("./compact-beads-YQDVF6FQ.js");
583
583
  const beadsResult = await compactBeads({ issueId, projectPath });
584
584
  if (beadsResult.success && !beadsResult.skipped) {
585
585
  console.log(`[merge-agent] \u2713 ${beadsResult.details?.join("; ")}`);
@@ -589,7 +589,7 @@ async function postMergeLifecycle(issueId, projectPath) {
589
589
  console.warn(`[merge-agent] Beads compaction failed: ${err}`);
590
590
  }
591
591
  try {
592
- const { getAgentState, saveAgentState } = await import("./agents-M2ZOZL3P.js");
592
+ const { getAgentState, saveAgentState } = await import("./agents-MOMDECON.js");
593
593
  const { killSession, sessionExists: sessionExists2 } = await import("./tmux-X2I5SAIJ.js");
594
594
  const agentId = `agent-${issueId.toLowerCase()}`;
595
595
  const agentState = getAgentState(agentId);
@@ -609,8 +609,8 @@ async function postMergeLifecycle(issueId, projectPath) {
609
609
  console.warn(`[merge-agent] Could not kill agent sessions: ${err}`);
610
610
  }
611
611
  try {
612
- const { findWorkspacePath } = await import("./archive-planning-U3AZAKWI.js");
613
- const { stopWorkspaceDocker } = await import("./workspace-manager-OWHLR5BL.js");
612
+ const { findWorkspacePath } = await import("./archive-planning-54J6EP6A.js");
613
+ const { stopWorkspaceDocker } = await import("./workspace-manager-Z57ROWBQ.js");
614
614
  const issueLower = issueId.toLowerCase();
615
615
  const workspacePath = findWorkspacePath(projectPath, issueLower);
616
616
  if (workspacePath) {
@@ -636,7 +636,7 @@ function closeIssueWithCircuitBreaker(issueId, projectPath) {
636
636
  }
637
637
  (async () => {
638
638
  try {
639
- const { closeIssue } = await import("./close-issue-CTZK777I.js");
639
+ const { closeIssue } = await import("./close-issue-5OMOP2FU.js");
640
640
  const ghResolved = resolveGitHubIssue(issueId);
641
641
  const ctx = ghResolved.isGitHub ? { issueId, projectPath, github: { owner: ghResolved.owner, repo: ghResolved.repo, number: ghResolved.number } } : { issueId, projectPath };
642
642
  const results = await closeIssue(ctx, { applyLabel: false, comment: "Merged to main via Panopticon merge-agent" });
@@ -1210,7 +1210,7 @@ Report any issues or conflicts you encountered.`;
1210
1210
  console.warn(`[merge-agent] Could not resolve project for ${issueId} \u2014 falling back to global specialist. Check projects.yaml configuration.`);
1211
1211
  }
1212
1212
  if (mergeProjectKey) {
1213
- const { getAgentRuntimeState, saveAgentRuntimeState } = await import("./agents-M2ZOZL3P.js");
1213
+ const { getAgentRuntimeState, saveAgentRuntimeState } = await import("./agents-MOMDECON.js");
1214
1214
  const IDLE_POLL_INTERVAL = 3e3;
1215
1215
  const IDLE_MAX_WAIT = 36e4;
1216
1216
  const idleStart = Date.now();
@@ -1722,4 +1722,4 @@ export {
1722
1722
  spawnMergeAgentForBranches,
1723
1723
  syncMainIntoWorkspace
1724
1724
  };
1725
- //# sourceMappingURL=merge-agent-756U4NPX.js.map
1725
+ //# sourceMappingURL=merge-agent-6YOMGQMX.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getRecentRunLogs,
3
3
  init_specialist_logs
4
- } from "./chunk-3WDSD2VK.js";
4
+ } from "./chunk-4OQ4SXQZ.js";
5
5
  import "./chunk-JQBV3Q2W.js";
6
6
  import {
7
7
  getModelId,
8
8
  init_work_type_router
9
- } from "./chunk-4R6ATXYI.js";
9
+ } from "./chunk-PFA5XE2V.js";
10
10
  import "./chunk-USYP2SBE.js";
11
11
  import "./chunk-QAJAJBFW.js";
12
12
  import {
@@ -257,4 +257,4 @@ export {
257
257
  regenerateContextDigest,
258
258
  scheduleDigestGeneration
259
259
  };
260
- //# sourceMappingURL=specialist-context-UBVUUFJV.js.map
260
+ //# sourceMappingURL=specialist-context-GVF4DV3M.js.map
@@ -16,9 +16,9 @@ import {
16
16
  isRunLogActive,
17
17
  listRunLogs,
18
18
  parseLogMetadata
19
- } from "./chunk-3WDSD2VK.js";
19
+ } from "./chunk-4OQ4SXQZ.js";
20
20
  import "./chunk-JQBV3Q2W.js";
21
- import "./chunk-4R6ATXYI.js";
21
+ import "./chunk-PFA5XE2V.js";
22
22
  import "./chunk-USYP2SBE.js";
23
23
  import "./chunk-QAJAJBFW.js";
24
24
  import "./chunk-7ZB5D46Y.js";
@@ -45,4 +45,4 @@ export {
45
45
  listRunLogs,
46
46
  parseLogMetadata
47
47
  };
48
- //# sourceMappingURL=specialist-logs-FQRI3AIS.js.map
48
+ //# sourceMappingURL=specialist-logs-W47SAAIU.js.map
@@ -55,9 +55,9 @@ import {
55
55
  wakeSpecialist,
56
56
  wakeSpecialistOrQueue,
57
57
  wakeSpecialistWithTask
58
- } from "./chunk-3WDSD2VK.js";
58
+ } from "./chunk-4OQ4SXQZ.js";
59
59
  import "./chunk-JQBV3Q2W.js";
60
- import "./chunk-4R6ATXYI.js";
60
+ import "./chunk-PFA5XE2V.js";
61
61
  import "./chunk-USYP2SBE.js";
62
62
  import "./chunk-QAJAJBFW.js";
63
63
  import "./chunk-7ZB5D46Y.js";
@@ -123,4 +123,4 @@ export {
123
123
  wakeSpecialistOrQueue,
124
124
  wakeSpecialistWithTask
125
125
  };
126
- //# sourceMappingURL=specialists-CXRGSJY3.js.map
126
+ //# sourceMappingURL=specialists-SIXRWCZ3.js.map
@@ -4,7 +4,7 @@ import {
4
4
  preTrustDirectory,
5
5
  removeWorkspace,
6
6
  stopWorkspaceDocker
7
- } from "./chunk-KPGVCGST.js";
7
+ } from "./chunk-BHRMW7BY.js";
8
8
  import "./chunk-JT4O4YVM.js";
9
9
  import "./chunk-ZWZNEA26.js";
10
10
  import "./chunk-DW3PKGIS.js";
@@ -19,4 +19,4 @@ export {
19
19
  removeWorkspace,
20
20
  stopWorkspaceDocker
21
21
  };
22
- //# sourceMappingURL=workspace-manager-OWHLR5BL.js.map
22
+ //# sourceMappingURL=workspace-manager-Z57ROWBQ.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "panopticon-cli",
3
- "version": "0.5.9",
3
+ "version": "0.5.10",
4
4
  "description": "Multi-agent orchestration for AI coding assistants (Claude Code, Codex, Cursor, Gemini CLI)",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -266,7 +266,7 @@ Validation: 8/8 checks passed
266
266
 
267
267
  Next steps:
268
268
  1. Create issues on <tracker>
269
- 2. Run: pan opus-plan <PREFIX>-<N> (plan with Opus)
269
+ 2. Run: pan plan <PREFIX>-<N> (plan with Opus)
270
270
  3. Run: pan work issue <PREFIX>-<N> (spawn implementation agent)
271
271
  ```
272
272
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pan-oversee
3
- description: Actively supervise an agent through the full work lifecycle, fixing infrastructure issues as they arise
3
+ description: Test the Panopticon framework by supervising an agent through the full lifecycle, identifying and filing every bug encountered
4
4
  triggers:
5
5
  - oversee issue
6
6
  - oversee agent
@@ -17,15 +17,35 @@ allowed-tools:
17
17
  - Task
18
18
  ---
19
19
 
20
- # Pan Oversee — Active Agent Supervision
20
+ # Pan Oversee — Panopticon Framework Testing
21
21
 
22
22
  ## Purpose
23
23
 
24
- Actively supervise an agent working on an issue through the **entire lifecycle**:
24
+ **This skill exists to test the Panopticon framework itself.** The issue being overseen is a test payload — the real goal is exercising the full agent lifecycle pipeline and identifying every bug, glitch, and rough edge along the way.
25
+
26
+ Supervise an agent working on an issue through the **entire lifecycle**:
25
27
  `spawn/resume → work → completion → review → feedback loop → test → merge-ready`
26
28
 
27
- This is NOT passive monitoring you actively watch for breakdowns at each stage
28
- and fix the underlying Panopticon infrastructure code when something fails.
29
+ This is NOT passive monitoring. You are actively:
30
+ - **Watching for bugs at every stage** dashboard rendering, agent spawning, workspace creation, beads lifecycle, specialist handoffs, status transitions, terminal output, API responses
31
+ - **Documenting everything** — no bug is too small. If something flickers, logs a warning, shows stale data, or doesn't match expected state, that's a finding
32
+ - **Fixing infrastructure bugs** when they block progress, then continuing the test
33
+ - **Filing or updating GitHub issues** (PAN-XXX) for every bug found
34
+
35
+ ## Bug Tracking During Oversight
36
+
37
+ Maintain a running bug log throughout the session. For each finding:
38
+
39
+ 1. **Note it immediately** — don't wait until the end. Capture the symptom, what you expected, and what actually happened.
40
+ 2. **Check for existing issues** — `gh issue list --search "keyword"` before filing duplicates
41
+ 3. **File new issues or update existing ones** — include reproduction context from this oversight run
42
+ 4. **Categorize severity:**
43
+ - **Blocker** — stops the pipeline, had to fix inline to continue
44
+ - **Bug** — incorrect behavior but pipeline continued
45
+ - **Cosmetic** — dashboard display issue, misleading status, stale data
46
+ - **Observation** — not clearly a bug but worth investigating
47
+
48
+ At the end of the oversight session, **report a summary** to the user of all findings: what was filed, what was updated, what was fixed inline, and what needs follow-up.
29
49
 
30
50
  ## Usage
31
51
 
@@ -306,13 +326,28 @@ pan work approve PAN-{ID}
306
326
 
307
327
  When you find a bug in the Panopticon infrastructure:
308
328
 
309
- 1. **Stop the agent** (if it's actively hitting the bug)
310
- 2. **Identify the root cause** in the source code
311
- 3. **Fix the code** — edit the relevant file(s)
312
- 4. **Rebuild if needed** — `npx tsup` or restart dashboard
313
- 5. **Resume/restart the agent** to continue from where it left off
329
+ 1. **Log the finding** add to your running bug list with symptom, expected behavior, and actual behavior
330
+ 2. **Check for existing issues** `gh issue list --state open --search "keyword"` to avoid duplicates
331
+ 3. **File or update a GitHub issue** — include context from this oversight run
332
+ 4. **Assess: blocker or not?**
333
+ - **If blocker:** Stop the agent, fix the code, rebuild (`npx tsup` or restart dashboard), resume the agent, continue testing
334
+ - **If not blocker:** Log it, file the issue, keep going — don't derail the test run for non-blocking bugs
335
+ 5. **After fixing a blocker**, verify the fix actually works by continuing through the same pipeline stage
314
336
  6. **Continue monitoring** from the current phase
315
337
 
338
+ ### What Counts as a Bug
339
+
340
+ Be thorough. All of these are findings worth logging:
341
+ - Dashboard shows wrong status, stale data, or flickers
342
+ - Agent state file says one thing, dashboard shows another
343
+ - Beads not created, duplicated, or disappearing
344
+ - Specialist doesn't wake up or takes too long
345
+ - Terminal output garbled or missing
346
+ - API returns unexpected response
347
+ - Status transition skipped or out of order
348
+ - Workspace in inconsistent state (e.g., directory exists but no git worktree)
349
+ - Any error in server logs, even if the pipeline recovers
350
+
316
351
  ## Key API Endpoints
317
352
 
318
353
  | Endpoint | Method | Purpose |