@askexenow/exe-os 0.9.39 → 0.9.41

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 (65) hide show
  1. package/dist/bin/backfill-conversations.js +7 -1
  2. package/dist/bin/backfill-responses.js +7 -1
  3. package/dist/bin/backfill-vectors.js +7 -1
  4. package/dist/bin/cleanup-stale-review-tasks.js +7 -1
  5. package/dist/bin/cli.js +43 -4
  6. package/dist/bin/exe-agent.js +7 -1
  7. package/dist/bin/exe-assign.js +7 -1
  8. package/dist/bin/exe-boot.js +7 -1
  9. package/dist/bin/exe-call.js +7 -1
  10. package/dist/bin/exe-dispatch.js +7 -1
  11. package/dist/bin/exe-doctor.js +7 -1
  12. package/dist/bin/exe-export-behaviors.js +7 -1
  13. package/dist/bin/exe-forget.js +7 -1
  14. package/dist/bin/exe-gateway.js +7 -1
  15. package/dist/bin/exe-heartbeat.js +7 -1
  16. package/dist/bin/exe-kill.js +7 -1
  17. package/dist/bin/exe-launch-agent.js +7 -1
  18. package/dist/bin/exe-new-employee.js +7 -1
  19. package/dist/bin/exe-pending-messages.js +7 -1
  20. package/dist/bin/exe-pending-notifications.js +7 -1
  21. package/dist/bin/exe-pending-reviews.js +7 -1
  22. package/dist/bin/exe-rename.js +7 -1
  23. package/dist/bin/exe-review.js +7 -1
  24. package/dist/bin/exe-search.js +7 -1
  25. package/dist/bin/exe-session-cleanup.js +7 -1
  26. package/dist/bin/exe-start-codex.js +7 -1
  27. package/dist/bin/exe-start-opencode.js +7 -1
  28. package/dist/bin/exe-status.js +7 -1
  29. package/dist/bin/exe-team.js +7 -1
  30. package/dist/bin/git-sweep.js +7 -1
  31. package/dist/bin/graph-backfill.js +7 -1
  32. package/dist/bin/graph-export.js +7 -1
  33. package/dist/bin/intercom-check.js +7 -1
  34. package/dist/bin/scan-tasks.js +7 -1
  35. package/dist/bin/setup.js +7 -1
  36. package/dist/bin/shard-migrate.js +7 -1
  37. package/dist/bin/update.js +36 -3
  38. package/dist/gateway/index.js +7 -1
  39. package/dist/hooks/bug-report-worker.js +7 -1
  40. package/dist/hooks/codex-stop-task-finalizer.js +7 -1
  41. package/dist/hooks/commit-complete.js +7 -1
  42. package/dist/hooks/error-recall.js +7 -1
  43. package/dist/hooks/ingest.js +7 -1
  44. package/dist/hooks/instructions-loaded.js +7 -1
  45. package/dist/hooks/notification.js +7 -1
  46. package/dist/hooks/post-compact.js +7 -1
  47. package/dist/hooks/post-tool-combined.js +7 -1
  48. package/dist/hooks/pre-compact.js +7 -1
  49. package/dist/hooks/pre-tool-use.js +7 -1
  50. package/dist/hooks/prompt-submit.js +7 -1
  51. package/dist/hooks/session-end.js +7 -1
  52. package/dist/hooks/session-start.js +7 -1
  53. package/dist/hooks/stop.js +7 -1
  54. package/dist/hooks/subagent-stop.js +7 -1
  55. package/dist/hooks/summary-worker.js +7 -1
  56. package/dist/index.js +7 -1
  57. package/dist/lib/employee-templates.js +7 -1
  58. package/dist/lib/exe-daemon.js +276 -47
  59. package/dist/lib/hybrid-search.js +7 -1
  60. package/dist/lib/schedules.js +7 -1
  61. package/dist/lib/store.js +7 -1
  62. package/dist/mcp/server.js +251 -29
  63. package/dist/runtime/index.js +7 -1
  64. package/dist/tui/App.js +7 -1
  65. package/package.json +2 -2
@@ -2727,6 +2727,12 @@ var init_platform_procedures = __esm({
2727
2727
  priority: "p0",
2728
2728
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
2729
2729
  },
2730
+ {
2731
+ title: "Customer patch triage \u2014 upstream bug vs customization",
2732
+ domain: "support",
2733
+ priority: "p0",
2734
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
2735
+ },
2730
2736
  // --- Operations ---
2731
2737
  {
2732
2738
  title: "Managers must supervise deployed workers",
@@ -2795,7 +2801,7 @@ var init_platform_procedures = __esm({
2795
2801
  title: "MCP tools \u2014 identity, behavior, and decisions",
2796
2802
  domain: "tool-use",
2797
2803
  priority: "p1",
2798
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
2804
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
2799
2805
  },
2800
2806
  {
2801
2807
  title: "MCP tools \u2014 communication and messaging",
@@ -3670,6 +3670,12 @@ var init_platform_procedures = __esm({
3670
3670
  priority: "p0",
3671
3671
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3672
3672
  },
3673
+ {
3674
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3675
+ domain: "support",
3676
+ priority: "p0",
3677
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3678
+ },
3673
3679
  // --- Operations ---
3674
3680
  {
3675
3681
  title: "Managers must supervise deployed workers",
@@ -3738,7 +3744,7 @@ var init_platform_procedures = __esm({
3738
3744
  title: "MCP tools \u2014 identity, behavior, and decisions",
3739
3745
  domain: "tool-use",
3740
3746
  priority: "p1",
3741
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3747
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3742
3748
  },
3743
3749
  {
3744
3750
  title: "MCP tools \u2014 communication and messaging",
@@ -3645,6 +3645,12 @@ var init_platform_procedures = __esm({
3645
3645
  priority: "p0",
3646
3646
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3647
3647
  },
3648
+ {
3649
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3650
+ domain: "support",
3651
+ priority: "p0",
3652
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3653
+ },
3648
3654
  // --- Operations ---
3649
3655
  {
3650
3656
  title: "Managers must supervise deployed workers",
@@ -3713,7 +3719,7 @@ var init_platform_procedures = __esm({
3713
3719
  title: "MCP tools \u2014 identity, behavior, and decisions",
3714
3720
  domain: "tool-use",
3715
3721
  priority: "p1",
3716
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3722
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3717
3723
  },
3718
3724
  {
3719
3725
  title: "MCP tools \u2014 communication and messaging",
@@ -3689,6 +3689,12 @@ var init_platform_procedures = __esm({
3689
3689
  priority: "p0",
3690
3690
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3691
3691
  },
3692
+ {
3693
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3694
+ domain: "support",
3695
+ priority: "p0",
3696
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3697
+ },
3692
3698
  // --- Operations ---
3693
3699
  {
3694
3700
  title: "Managers must supervise deployed workers",
@@ -3757,7 +3763,7 @@ var init_platform_procedures = __esm({
3757
3763
  title: "MCP tools \u2014 identity, behavior, and decisions",
3758
3764
  domain: "tool-use",
3759
3765
  priority: "p1",
3760
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3766
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3761
3767
  },
3762
3768
  {
3763
3769
  title: "MCP tools \u2014 communication and messaging",
@@ -3084,6 +3084,12 @@ var init_platform_procedures = __esm({
3084
3084
  priority: "p0",
3085
3085
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3086
3086
  },
3087
+ {
3088
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3089
+ domain: "support",
3090
+ priority: "p0",
3091
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3092
+ },
3087
3093
  // --- Operations ---
3088
3094
  {
3089
3095
  title: "Managers must supervise deployed workers",
@@ -3152,7 +3158,7 @@ var init_platform_procedures = __esm({
3152
3158
  title: "MCP tools \u2014 identity, behavior, and decisions",
3153
3159
  domain: "tool-use",
3154
3160
  priority: "p1",
3155
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3161
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3156
3162
  },
3157
3163
  {
3158
3164
  title: "MCP tools \u2014 communication and messaging",
@@ -3084,6 +3084,12 @@ var init_platform_procedures = __esm({
3084
3084
  priority: "p0",
3085
3085
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3086
3086
  },
3087
+ {
3088
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3089
+ domain: "support",
3090
+ priority: "p0",
3091
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3092
+ },
3087
3093
  // --- Operations ---
3088
3094
  {
3089
3095
  title: "Managers must supervise deployed workers",
@@ -3152,7 +3158,7 @@ var init_platform_procedures = __esm({
3152
3158
  title: "MCP tools \u2014 identity, behavior, and decisions",
3153
3159
  domain: "tool-use",
3154
3160
  priority: "p1",
3155
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3161
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3156
3162
  },
3157
3163
  {
3158
3164
  title: "MCP tools \u2014 communication and messaging",
@@ -3678,6 +3678,12 @@ var init_platform_procedures = __esm({
3678
3678
  priority: "p0",
3679
3679
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3680
3680
  },
3681
+ {
3682
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3683
+ domain: "support",
3684
+ priority: "p0",
3685
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3686
+ },
3681
3687
  // --- Operations ---
3682
3688
  {
3683
3689
  title: "Managers must supervise deployed workers",
@@ -3746,7 +3752,7 @@ var init_platform_procedures = __esm({
3746
3752
  title: "MCP tools \u2014 identity, behavior, and decisions",
3747
3753
  domain: "tool-use",
3748
3754
  priority: "p1",
3749
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3755
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3750
3756
  },
3751
3757
  {
3752
3758
  title: "MCP tools \u2014 communication and messaging",
@@ -3667,6 +3667,12 @@ var init_platform_procedures = __esm({
3667
3667
  priority: "p0",
3668
3668
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3669
3669
  },
3670
+ {
3671
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3672
+ domain: "support",
3673
+ priority: "p0",
3674
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3675
+ },
3670
3676
  // --- Operations ---
3671
3677
  {
3672
3678
  title: "Managers must supervise deployed workers",
@@ -3735,7 +3741,7 @@ var init_platform_procedures = __esm({
3735
3741
  title: "MCP tools \u2014 identity, behavior, and decisions",
3736
3742
  domain: "tool-use",
3737
3743
  priority: "p1",
3738
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3744
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3739
3745
  },
3740
3746
  {
3741
3747
  title: "MCP tools \u2014 communication and messaging",
@@ -7290,6 +7290,12 @@ var init_platform_procedures = __esm({
7290
7290
  priority: "p0",
7291
7291
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
7292
7292
  },
7293
+ {
7294
+ title: "Customer patch triage \u2014 upstream bug vs customization",
7295
+ domain: "support",
7296
+ priority: "p0",
7297
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
7298
+ },
7293
7299
  // --- Operations ---
7294
7300
  {
7295
7301
  title: "Managers must supervise deployed workers",
@@ -7358,7 +7364,7 @@ var init_platform_procedures = __esm({
7358
7364
  title: "MCP tools \u2014 identity, behavior, and decisions",
7359
7365
  domain: "tool-use",
7360
7366
  priority: "p1",
7361
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
7367
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
7362
7368
  },
7363
7369
  {
7364
7370
  title: "MCP tools \u2014 communication and messaging",
@@ -3007,6 +3007,12 @@ var init_platform_procedures = __esm({
3007
3007
  priority: "p0",
3008
3008
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3009
3009
  },
3010
+ {
3011
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3012
+ domain: "support",
3013
+ priority: "p0",
3014
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3015
+ },
3010
3016
  // --- Operations ---
3011
3017
  {
3012
3018
  title: "Managers must supervise deployed workers",
@@ -3075,7 +3081,7 @@ var init_platform_procedures = __esm({
3075
3081
  title: "MCP tools \u2014 identity, behavior, and decisions",
3076
3082
  domain: "tool-use",
3077
3083
  priority: "p1",
3078
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3084
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3079
3085
  },
3080
3086
  {
3081
3087
  title: "MCP tools \u2014 communication and messaging",
@@ -3656,6 +3656,12 @@ var init_platform_procedures = __esm({
3656
3656
  priority: "p0",
3657
3657
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3658
3658
  },
3659
+ {
3660
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3661
+ domain: "support",
3662
+ priority: "p0",
3663
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3664
+ },
3659
3665
  // --- Operations ---
3660
3666
  {
3661
3667
  title: "Managers must supervise deployed workers",
@@ -3724,7 +3730,7 @@ var init_platform_procedures = __esm({
3724
3730
  title: "MCP tools \u2014 identity, behavior, and decisions",
3725
3731
  domain: "tool-use",
3726
3732
  priority: "p1",
3727
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3733
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3728
3734
  },
3729
3735
  {
3730
3736
  title: "MCP tools \u2014 communication and messaging",
@@ -3755,6 +3755,12 @@ var init_platform_procedures = __esm({
3755
3755
  priority: "p0",
3756
3756
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3757
3757
  },
3758
+ {
3759
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3760
+ domain: "support",
3761
+ priority: "p0",
3762
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3763
+ },
3758
3764
  // --- Operations ---
3759
3765
  {
3760
3766
  title: "Managers must supervise deployed workers",
@@ -3823,7 +3829,7 @@ var init_platform_procedures = __esm({
3823
3829
  title: "MCP tools \u2014 identity, behavior, and decisions",
3824
3830
  domain: "tool-use",
3825
3831
  priority: "p1",
3826
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3832
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3827
3833
  },
3828
3834
  {
3829
3835
  title: "MCP tools \u2014 communication and messaging",
@@ -7361,6 +7361,12 @@ var init_platform_procedures = __esm({
7361
7361
  priority: "p0",
7362
7362
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
7363
7363
  },
7364
+ {
7365
+ title: "Customer patch triage \u2014 upstream bug vs customization",
7366
+ domain: "support",
7367
+ priority: "p0",
7368
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
7369
+ },
7364
7370
  // --- Operations ---
7365
7371
  {
7366
7372
  title: "Managers must supervise deployed workers",
@@ -7429,7 +7435,7 @@ var init_platform_procedures = __esm({
7429
7435
  title: "MCP tools \u2014 identity, behavior, and decisions",
7430
7436
  domain: "tool-use",
7431
7437
  priority: "p1",
7432
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
7438
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
7433
7439
  },
7434
7440
  {
7435
7441
  title: "MCP tools \u2014 communication and messaging",
package/dist/bin/setup.js CHANGED
@@ -5695,6 +5695,12 @@ var init_platform_procedures = __esm({
5695
5695
  priority: "p0",
5696
5696
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
5697
5697
  },
5698
+ {
5699
+ title: "Customer patch triage \u2014 upstream bug vs customization",
5700
+ domain: "support",
5701
+ priority: "p0",
5702
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
5703
+ },
5698
5704
  // --- Operations ---
5699
5705
  {
5700
5706
  title: "Managers must supervise deployed workers",
@@ -5763,7 +5769,7 @@ var init_platform_procedures = __esm({
5763
5769
  title: "MCP tools \u2014 identity, behavior, and decisions",
5764
5770
  domain: "tool-use",
5765
5771
  priority: "p1",
5766
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
5772
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
5767
5773
  },
5768
5774
  {
5769
5775
  title: "MCP tools \u2014 communication and messaging",
@@ -3007,6 +3007,12 @@ var init_platform_procedures = __esm({
3007
3007
  priority: "p0",
3008
3008
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3009
3009
  },
3010
+ {
3011
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3012
+ domain: "support",
3013
+ priority: "p0",
3014
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3015
+ },
3010
3016
  // --- Operations ---
3011
3017
  {
3012
3018
  title: "Managers must supervise deployed workers",
@@ -3075,7 +3081,7 @@ var init_platform_procedures = __esm({
3075
3081
  title: "MCP tools \u2014 identity, behavior, and decisions",
3076
3082
  domain: "tool-use",
3077
3083
  priority: "p1",
3078
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3084
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3079
3085
  },
3080
3086
  {
3081
3087
  title: "MCP tools \u2014 communication and messaging",
@@ -615,11 +615,29 @@ function resolveDataDir() {
615
615
  var BACKUP_TARGETS = [
616
616
  { name: "config.json", type: "file" },
617
617
  { name: "exe-employees.json", type: "file" },
618
+ { name: "agent-config.json", type: "file" },
618
619
  { name: "master.key", type: "file" },
619
- { name: "identity", type: "dir" }
620
+ { name: "tmux.conf", type: "file" },
621
+ { name: "identity", type: "dir" },
622
+ { name: "shards", type: "dir" },
623
+ { name: "mcp-configs", type: "dir" }
620
624
  // All .db files (SQLCipher databases) — matched dynamically
621
625
  ];
622
- async function createUpdateBackup(currentVersion, dataDir) {
626
+ function externalBackupTargets(homeDir) {
627
+ return [
628
+ { name: "claude.json", path: path.join(homeDir, ".claude.json") },
629
+ { name: "claude-settings.json", path: path.join(homeDir, ".claude", "settings.json") },
630
+ { name: "claude-CLAUDE.md", path: path.join(homeDir, ".claude", "CLAUDE.md") },
631
+ { name: "tmux.conf", path: path.join(homeDir, ".tmux.conf") },
632
+ { name: "zshrc", path: path.join(homeDir, ".zshrc") },
633
+ { name: "bashrc", path: path.join(homeDir, ".bashrc") },
634
+ { name: "ghostty-config", path: path.join(homeDir, ".config", "ghostty", "config") },
635
+ { name: "codex-config.toml", path: path.join(homeDir, ".codex", "config.toml") },
636
+ { name: "codex-hooks.json", path: path.join(homeDir, ".codex", "hooks.json") },
637
+ { name: "opencode-config.json", path: path.join(homeDir, ".config", "opencode", "opencode.json") }
638
+ ];
639
+ }
640
+ async function createUpdateBackup(currentVersion, dataDir, homeDir = os.homedir()) {
623
641
  const dir = dataDir ?? resolveDataDir();
624
642
  const backupDir = path.join(dir, BACKUP_DIR_NAME);
625
643
  if (existsSync(backupDir)) {
@@ -647,10 +665,19 @@ async function createUpdateBackup(currentVersion, dataDir) {
647
665
  backedUpFiles.push(entry.name);
648
666
  }
649
667
  }
668
+ const externalFiles = [];
669
+ const externalDir = path.join(backupDir, "external");
670
+ for (const target of externalBackupTargets(homeDir)) {
671
+ if (!existsSync(target.path)) continue;
672
+ await mkdir(externalDir, { recursive: true });
673
+ await copyFile(target.path, path.join(externalDir, target.name));
674
+ externalFiles.push(target);
675
+ }
650
676
  const manifest = {
651
677
  version: currentVersion,
652
678
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
653
- files: backedUpFiles
679
+ files: backedUpFiles,
680
+ ...externalFiles.length > 0 ? { externalFiles } : {}
654
681
  };
655
682
  await writeFile(
656
683
  path.join(backupDir, "manifest.json"),
@@ -681,6 +708,12 @@ async function restoreFromBackup(dataDir) {
681
708
  await copyFile(src, dest);
682
709
  }
683
710
  }
711
+ for (const external of manifest.externalFiles ?? []) {
712
+ const src = path.join(backupDir, "external", external.name);
713
+ if (!existsSync(src)) continue;
714
+ await mkdir(path.dirname(external.path), { recursive: true });
715
+ await copyFile(src, external.path);
716
+ }
684
717
  return manifest;
685
718
  }
686
719
  async function deleteBackup(dataDir) {
@@ -4314,6 +4314,12 @@ var init_platform_procedures = __esm({
4314
4314
  priority: "p0",
4315
4315
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
4316
4316
  },
4317
+ {
4318
+ title: "Customer patch triage \u2014 upstream bug vs customization",
4319
+ domain: "support",
4320
+ priority: "p0",
4321
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
4322
+ },
4317
4323
  // --- Operations ---
4318
4324
  {
4319
4325
  title: "Managers must supervise deployed workers",
@@ -4382,7 +4388,7 @@ var init_platform_procedures = __esm({
4382
4388
  title: "MCP tools \u2014 identity, behavior, and decisions",
4383
4389
  domain: "tool-use",
4384
4390
  priority: "p1",
4385
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
4391
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
4386
4392
  },
4387
4393
  {
4388
4394
  title: "MCP tools \u2014 communication and messaging",
@@ -4056,6 +4056,12 @@ var init_platform_procedures = __esm({
4056
4056
  priority: "p0",
4057
4057
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
4058
4058
  },
4059
+ {
4060
+ title: "Customer patch triage \u2014 upstream bug vs customization",
4061
+ domain: "support",
4062
+ priority: "p0",
4063
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
4064
+ },
4059
4065
  // --- Operations ---
4060
4066
  {
4061
4067
  title: "Managers must supervise deployed workers",
@@ -4124,7 +4130,7 @@ var init_platform_procedures = __esm({
4124
4130
  title: "MCP tools \u2014 identity, behavior, and decisions",
4125
4131
  domain: "tool-use",
4126
4132
  priority: "p1",
4127
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
4133
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
4128
4134
  },
4129
4135
  {
4130
4136
  title: "MCP tools \u2014 communication and messaging",
@@ -3739,6 +3739,12 @@ var init_platform_procedures = __esm({
3739
3739
  priority: "p0",
3740
3740
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3741
3741
  },
3742
+ {
3743
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3744
+ domain: "support",
3745
+ priority: "p0",
3746
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3747
+ },
3742
3748
  // --- Operations ---
3743
3749
  {
3744
3750
  title: "Managers must supervise deployed workers",
@@ -3807,7 +3813,7 @@ var init_platform_procedures = __esm({
3807
3813
  title: "MCP tools \u2014 identity, behavior, and decisions",
3808
3814
  domain: "tool-use",
3809
3815
  priority: "p1",
3810
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3816
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3811
3817
  },
3812
3818
  {
3813
3819
  title: "MCP tools \u2014 communication and messaging",
@@ -7355,6 +7355,12 @@ var init_platform_procedures = __esm({
7355
7355
  priority: "p0",
7356
7356
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
7357
7357
  },
7358
+ {
7359
+ title: "Customer patch triage \u2014 upstream bug vs customization",
7360
+ domain: "support",
7361
+ priority: "p0",
7362
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
7363
+ },
7358
7364
  // --- Operations ---
7359
7365
  {
7360
7366
  title: "Managers must supervise deployed workers",
@@ -7423,7 +7429,7 @@ var init_platform_procedures = __esm({
7423
7429
  title: "MCP tools \u2014 identity, behavior, and decisions",
7424
7430
  domain: "tool-use",
7425
7431
  priority: "p1",
7426
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
7432
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
7427
7433
  },
7428
7434
  {
7429
7435
  title: "MCP tools \u2014 communication and messaging",
@@ -3647,6 +3647,12 @@ var init_platform_procedures = __esm({
3647
3647
  priority: "p0",
3648
3648
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3649
3649
  },
3650
+ {
3651
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3652
+ domain: "support",
3653
+ priority: "p0",
3654
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3655
+ },
3650
3656
  // --- Operations ---
3651
3657
  {
3652
3658
  title: "Managers must supervise deployed workers",
@@ -3715,7 +3721,7 @@ var init_platform_procedures = __esm({
3715
3721
  title: "MCP tools \u2014 identity, behavior, and decisions",
3716
3722
  domain: "tool-use",
3717
3723
  priority: "p1",
3718
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3724
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3719
3725
  },
3720
3726
  {
3721
3727
  title: "MCP tools \u2014 communication and messaging",
@@ -3824,6 +3824,12 @@ var init_platform_procedures = __esm({
3824
3824
  priority: "p0",
3825
3825
  content: "NEVER: (1) Access the database directly \u2014 it's SQLCipher encrypted, always fails. Use MCP tools only. (2) Manually spawn tmux sessions \u2014 create_task handles it. (3) Run git checkout main \u2014 agents work in worktrees. (4) Modify another agent's in-progress task. (5) Push to remote \u2014 the COO reviews and pushes. (6) Skip update_task(done) \u2014 it's the ONLY way your work gets reviewed. (7) Run git init."
3826
3826
  },
3827
+ {
3828
+ title: "Customer patch triage \u2014 upstream bug vs customization",
3829
+ domain: "support",
3830
+ priority: "p0",
3831
+ content: "Before editing platform code for a customer issue, classify it. Upstream bug = reproducible exe-os/platform defect; call create_bug_report with repro/version/workaround and avoid permanent local patches unless founder approves. Customer customization = identity, behavior, procedure, config, branding, workflow; store it in customer-owned layers, not platform code. Emergency hotfix = temporary only; document files/diff and re-check after npm update."
3832
+ },
3827
3833
  // --- Operations ---
3828
3834
  {
3829
3835
  title: "Managers must supervise deployed workers",
@@ -3892,7 +3898,7 @@ var init_platform_procedures = __esm({
3892
3898
  title: "MCP tools \u2014 identity, behavior, and decisions",
3893
3899
  domain: "tool-use",
3894
3900
  priority: "p1",
3895
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query."
3901
+ content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: classify/file upstream bugs, customer customizations, and emergency hotfixes."
3896
3902
  },
3897
3903
  {
3898
3904
  title: "MCP tools \u2014 communication and messaging",