@fro.bot/systematic 2.31.1 → 2.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1 -1
- package/dist/{index-ybqr13k7.js → index-wjkgb2gb.js} +206 -162
- package/dist/index.js +1 -1
- package/dist/lib/config-schema.d.ts +2 -0
- package/dist/lib/config.d.ts +14 -0
- package/dist/lib/removed-names.d.ts +15 -0
- package/package.json +3 -3
package/dist/cli.js
CHANGED
|
@@ -1414,6 +1414,164 @@ function printParseErrorCode(code) {
|
|
|
1414
1414
|
return "<unknown ParseErrorCode>";
|
|
1415
1415
|
}
|
|
1416
1416
|
|
|
1417
|
+
// src/lib/bundled-names.ts
|
|
1418
|
+
var BUNDLED_AGENT_NAMES = [
|
|
1419
|
+
"adversarial-document-reviewer",
|
|
1420
|
+
"adversarial-reviewer",
|
|
1421
|
+
"agent-native-reviewer",
|
|
1422
|
+
"ankane-readme-writer",
|
|
1423
|
+
"api-contract-reviewer",
|
|
1424
|
+
"architecture-strategist",
|
|
1425
|
+
"best-practices-researcher",
|
|
1426
|
+
"bug-reproduction-validator",
|
|
1427
|
+
"cli-agent-readiness-reviewer",
|
|
1428
|
+
"cli-readiness-reviewer",
|
|
1429
|
+
"code-simplicity-reviewer",
|
|
1430
|
+
"coherence-reviewer",
|
|
1431
|
+
"correctness-reviewer",
|
|
1432
|
+
"data-integrity-guardian",
|
|
1433
|
+
"data-migration-expert",
|
|
1434
|
+
"data-migrations-reviewer",
|
|
1435
|
+
"deployment-verification-agent",
|
|
1436
|
+
"design-implementation-reviewer",
|
|
1437
|
+
"design-iterator",
|
|
1438
|
+
"design-lens-reviewer",
|
|
1439
|
+
"dhh-rails-reviewer",
|
|
1440
|
+
"feasibility-reviewer",
|
|
1441
|
+
"figma-design-sync",
|
|
1442
|
+
"framework-docs-researcher",
|
|
1443
|
+
"git-history-analyzer",
|
|
1444
|
+
"issue-intelligence-analyst",
|
|
1445
|
+
"julik-frontend-races-reviewer",
|
|
1446
|
+
"kieran-python-reviewer",
|
|
1447
|
+
"kieran-rails-reviewer",
|
|
1448
|
+
"kieran-typescript-reviewer",
|
|
1449
|
+
"learnings-researcher",
|
|
1450
|
+
"lint",
|
|
1451
|
+
"maintainability-reviewer",
|
|
1452
|
+
"pattern-recognition-specialist",
|
|
1453
|
+
"performance-oracle",
|
|
1454
|
+
"performance-reviewer",
|
|
1455
|
+
"pr-comment-resolver",
|
|
1456
|
+
"previous-comments-reviewer",
|
|
1457
|
+
"product-lens-reviewer",
|
|
1458
|
+
"project-standards-reviewer",
|
|
1459
|
+
"reliability-reviewer",
|
|
1460
|
+
"repo-research-analyst",
|
|
1461
|
+
"schema-drift-detector",
|
|
1462
|
+
"scope-guardian-reviewer",
|
|
1463
|
+
"security-lens-reviewer",
|
|
1464
|
+
"security-reviewer",
|
|
1465
|
+
"security-sentinel",
|
|
1466
|
+
"slack-researcher",
|
|
1467
|
+
"spec-flow-analyzer",
|
|
1468
|
+
"systematic-implementer",
|
|
1469
|
+
"testing-reviewer"
|
|
1470
|
+
];
|
|
1471
|
+
var BUNDLED_AGENT_QUALIFIED_IDS = [
|
|
1472
|
+
"design/design-implementation-reviewer",
|
|
1473
|
+
"design/design-iterator",
|
|
1474
|
+
"design/figma-design-sync",
|
|
1475
|
+
"docs/ankane-readme-writer",
|
|
1476
|
+
"document-review/adversarial-document-reviewer",
|
|
1477
|
+
"document-review/coherence-reviewer",
|
|
1478
|
+
"document-review/design-lens-reviewer",
|
|
1479
|
+
"document-review/feasibility-reviewer",
|
|
1480
|
+
"document-review/product-lens-reviewer",
|
|
1481
|
+
"document-review/scope-guardian-reviewer",
|
|
1482
|
+
"document-review/security-lens-reviewer",
|
|
1483
|
+
"research/best-practices-researcher",
|
|
1484
|
+
"research/framework-docs-researcher",
|
|
1485
|
+
"research/git-history-analyzer",
|
|
1486
|
+
"research/issue-intelligence-analyst",
|
|
1487
|
+
"research/learnings-researcher",
|
|
1488
|
+
"research/repo-research-analyst",
|
|
1489
|
+
"research/slack-researcher",
|
|
1490
|
+
"review/adversarial-reviewer",
|
|
1491
|
+
"review/agent-native-reviewer",
|
|
1492
|
+
"review/api-contract-reviewer",
|
|
1493
|
+
"review/architecture-strategist",
|
|
1494
|
+
"review/cli-agent-readiness-reviewer",
|
|
1495
|
+
"review/cli-readiness-reviewer",
|
|
1496
|
+
"review/code-simplicity-reviewer",
|
|
1497
|
+
"review/correctness-reviewer",
|
|
1498
|
+
"review/data-integrity-guardian",
|
|
1499
|
+
"review/data-migration-expert",
|
|
1500
|
+
"review/data-migrations-reviewer",
|
|
1501
|
+
"review/deployment-verification-agent",
|
|
1502
|
+
"review/dhh-rails-reviewer",
|
|
1503
|
+
"review/julik-frontend-races-reviewer",
|
|
1504
|
+
"review/kieran-python-reviewer",
|
|
1505
|
+
"review/kieran-rails-reviewer",
|
|
1506
|
+
"review/kieran-typescript-reviewer",
|
|
1507
|
+
"review/maintainability-reviewer",
|
|
1508
|
+
"review/pattern-recognition-specialist",
|
|
1509
|
+
"review/performance-oracle",
|
|
1510
|
+
"review/performance-reviewer",
|
|
1511
|
+
"review/previous-comments-reviewer",
|
|
1512
|
+
"review/project-standards-reviewer",
|
|
1513
|
+
"review/reliability-reviewer",
|
|
1514
|
+
"review/schema-drift-detector",
|
|
1515
|
+
"review/security-reviewer",
|
|
1516
|
+
"review/security-sentinel",
|
|
1517
|
+
"review/testing-reviewer",
|
|
1518
|
+
"workflow/bug-reproduction-validator",
|
|
1519
|
+
"workflow/lint",
|
|
1520
|
+
"workflow/pr-comment-resolver",
|
|
1521
|
+
"workflow/spec-flow-analyzer",
|
|
1522
|
+
"workflow/systematic-implementer"
|
|
1523
|
+
];
|
|
1524
|
+
var BUNDLED_SKILL_NAMES = [
|
|
1525
|
+
"agent-browser",
|
|
1526
|
+
"agent-native-architecture",
|
|
1527
|
+
"agent-native-audit",
|
|
1528
|
+
"andrew-kane-gem-writer",
|
|
1529
|
+
"ce:brainstorm",
|
|
1530
|
+
"ce:compound",
|
|
1531
|
+
"ce:compound-refresh",
|
|
1532
|
+
"ce:ideate",
|
|
1533
|
+
"ce:plan",
|
|
1534
|
+
"ce:review",
|
|
1535
|
+
"ce:work",
|
|
1536
|
+
"changelog",
|
|
1537
|
+
"claude-permissions-optimizer",
|
|
1538
|
+
"compound-docs",
|
|
1539
|
+
"deepen-plan",
|
|
1540
|
+
"deploy-docs",
|
|
1541
|
+
"dhh-rails-style",
|
|
1542
|
+
"document-review",
|
|
1543
|
+
"dspy-ruby",
|
|
1544
|
+
"every-style-editor",
|
|
1545
|
+
"feature-video",
|
|
1546
|
+
"frontend-design",
|
|
1547
|
+
"gemini-imagegen",
|
|
1548
|
+
"generate_command",
|
|
1549
|
+
"git-clean-gone-branches",
|
|
1550
|
+
"git-commit",
|
|
1551
|
+
"git-commit-push-pr",
|
|
1552
|
+
"git-worktree",
|
|
1553
|
+
"lfg",
|
|
1554
|
+
"onboarding",
|
|
1555
|
+
"orchestrating-subagents",
|
|
1556
|
+
"orchestrating-swarms",
|
|
1557
|
+
"proof",
|
|
1558
|
+
"rclone",
|
|
1559
|
+
"report-bug-ce",
|
|
1560
|
+
"reproduce-bug",
|
|
1561
|
+
"resolve-pr-feedback",
|
|
1562
|
+
"setup",
|
|
1563
|
+
"slfg",
|
|
1564
|
+
"test-browser",
|
|
1565
|
+
"test-driven-development",
|
|
1566
|
+
"test-xcode",
|
|
1567
|
+
"todo-create",
|
|
1568
|
+
"todo-resolve",
|
|
1569
|
+
"todo-triage",
|
|
1570
|
+
"using-systematic",
|
|
1571
|
+
"writing-skills",
|
|
1572
|
+
"writing-systematic-skills"
|
|
1573
|
+
];
|
|
1574
|
+
|
|
1417
1575
|
// node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
1418
1576
|
var exports_external = {};
|
|
1419
1577
|
__export(exports_external, {
|
|
@@ -15701,163 +15859,9 @@ var OPENCODE_AGENT_COLOR_TOKENS = [
|
|
|
15701
15859
|
"info"
|
|
15702
15860
|
];
|
|
15703
15861
|
|
|
15704
|
-
// src/lib/
|
|
15705
|
-
var
|
|
15706
|
-
|
|
15707
|
-
"adversarial-reviewer",
|
|
15708
|
-
"agent-native-reviewer",
|
|
15709
|
-
"ankane-readme-writer",
|
|
15710
|
-
"api-contract-reviewer",
|
|
15711
|
-
"architecture-strategist",
|
|
15712
|
-
"best-practices-researcher",
|
|
15713
|
-
"bug-reproduction-validator",
|
|
15714
|
-
"cli-agent-readiness-reviewer",
|
|
15715
|
-
"cli-readiness-reviewer",
|
|
15716
|
-
"code-simplicity-reviewer",
|
|
15717
|
-
"coherence-reviewer",
|
|
15718
|
-
"correctness-reviewer",
|
|
15719
|
-
"data-integrity-guardian",
|
|
15720
|
-
"data-migration-expert",
|
|
15721
|
-
"data-migrations-reviewer",
|
|
15722
|
-
"deployment-verification-agent",
|
|
15723
|
-
"design-implementation-reviewer",
|
|
15724
|
-
"design-iterator",
|
|
15725
|
-
"design-lens-reviewer",
|
|
15726
|
-
"dhh-rails-reviewer",
|
|
15727
|
-
"feasibility-reviewer",
|
|
15728
|
-
"figma-design-sync",
|
|
15729
|
-
"framework-docs-researcher",
|
|
15730
|
-
"git-history-analyzer",
|
|
15731
|
-
"issue-intelligence-analyst",
|
|
15732
|
-
"julik-frontend-races-reviewer",
|
|
15733
|
-
"kieran-python-reviewer",
|
|
15734
|
-
"kieran-rails-reviewer",
|
|
15735
|
-
"kieran-typescript-reviewer",
|
|
15736
|
-
"learnings-researcher",
|
|
15737
|
-
"lint",
|
|
15738
|
-
"maintainability-reviewer",
|
|
15739
|
-
"pattern-recognition-specialist",
|
|
15740
|
-
"performance-oracle",
|
|
15741
|
-
"performance-reviewer",
|
|
15742
|
-
"pr-comment-resolver",
|
|
15743
|
-
"previous-comments-reviewer",
|
|
15744
|
-
"product-lens-reviewer",
|
|
15745
|
-
"project-standards-reviewer",
|
|
15746
|
-
"reliability-reviewer",
|
|
15747
|
-
"repo-research-analyst",
|
|
15748
|
-
"schema-drift-detector",
|
|
15749
|
-
"scope-guardian-reviewer",
|
|
15750
|
-
"security-lens-reviewer",
|
|
15751
|
-
"security-reviewer",
|
|
15752
|
-
"security-sentinel",
|
|
15753
|
-
"slack-researcher",
|
|
15754
|
-
"spec-flow-analyzer",
|
|
15755
|
-
"systematic-implementer",
|
|
15756
|
-
"testing-reviewer"
|
|
15757
|
-
];
|
|
15758
|
-
var BUNDLED_AGENT_QUALIFIED_IDS = [
|
|
15759
|
-
"design/design-implementation-reviewer",
|
|
15760
|
-
"design/design-iterator",
|
|
15761
|
-
"design/figma-design-sync",
|
|
15762
|
-
"docs/ankane-readme-writer",
|
|
15763
|
-
"document-review/adversarial-document-reviewer",
|
|
15764
|
-
"document-review/coherence-reviewer",
|
|
15765
|
-
"document-review/design-lens-reviewer",
|
|
15766
|
-
"document-review/feasibility-reviewer",
|
|
15767
|
-
"document-review/product-lens-reviewer",
|
|
15768
|
-
"document-review/scope-guardian-reviewer",
|
|
15769
|
-
"document-review/security-lens-reviewer",
|
|
15770
|
-
"research/best-practices-researcher",
|
|
15771
|
-
"research/framework-docs-researcher",
|
|
15772
|
-
"research/git-history-analyzer",
|
|
15773
|
-
"research/issue-intelligence-analyst",
|
|
15774
|
-
"research/learnings-researcher",
|
|
15775
|
-
"research/repo-research-analyst",
|
|
15776
|
-
"research/slack-researcher",
|
|
15777
|
-
"review/adversarial-reviewer",
|
|
15778
|
-
"review/agent-native-reviewer",
|
|
15779
|
-
"review/api-contract-reviewer",
|
|
15780
|
-
"review/architecture-strategist",
|
|
15781
|
-
"review/cli-agent-readiness-reviewer",
|
|
15782
|
-
"review/cli-readiness-reviewer",
|
|
15783
|
-
"review/code-simplicity-reviewer",
|
|
15784
|
-
"review/correctness-reviewer",
|
|
15785
|
-
"review/data-integrity-guardian",
|
|
15786
|
-
"review/data-migration-expert",
|
|
15787
|
-
"review/data-migrations-reviewer",
|
|
15788
|
-
"review/deployment-verification-agent",
|
|
15789
|
-
"review/dhh-rails-reviewer",
|
|
15790
|
-
"review/julik-frontend-races-reviewer",
|
|
15791
|
-
"review/kieran-python-reviewer",
|
|
15792
|
-
"review/kieran-rails-reviewer",
|
|
15793
|
-
"review/kieran-typescript-reviewer",
|
|
15794
|
-
"review/maintainability-reviewer",
|
|
15795
|
-
"review/pattern-recognition-specialist",
|
|
15796
|
-
"review/performance-oracle",
|
|
15797
|
-
"review/performance-reviewer",
|
|
15798
|
-
"review/previous-comments-reviewer",
|
|
15799
|
-
"review/project-standards-reviewer",
|
|
15800
|
-
"review/reliability-reviewer",
|
|
15801
|
-
"review/schema-drift-detector",
|
|
15802
|
-
"review/security-reviewer",
|
|
15803
|
-
"review/security-sentinel",
|
|
15804
|
-
"review/testing-reviewer",
|
|
15805
|
-
"workflow/bug-reproduction-validator",
|
|
15806
|
-
"workflow/lint",
|
|
15807
|
-
"workflow/pr-comment-resolver",
|
|
15808
|
-
"workflow/spec-flow-analyzer",
|
|
15809
|
-
"workflow/systematic-implementer"
|
|
15810
|
-
];
|
|
15811
|
-
var BUNDLED_SKILL_NAMES = [
|
|
15812
|
-
"agent-browser",
|
|
15813
|
-
"agent-native-architecture",
|
|
15814
|
-
"agent-native-audit",
|
|
15815
|
-
"andrew-kane-gem-writer",
|
|
15816
|
-
"ce:brainstorm",
|
|
15817
|
-
"ce:compound",
|
|
15818
|
-
"ce:compound-refresh",
|
|
15819
|
-
"ce:ideate",
|
|
15820
|
-
"ce:plan",
|
|
15821
|
-
"ce:review",
|
|
15822
|
-
"ce:work",
|
|
15823
|
-
"changelog",
|
|
15824
|
-
"claude-permissions-optimizer",
|
|
15825
|
-
"compound-docs",
|
|
15826
|
-
"deepen-plan",
|
|
15827
|
-
"deploy-docs",
|
|
15828
|
-
"dhh-rails-style",
|
|
15829
|
-
"document-review",
|
|
15830
|
-
"dspy-ruby",
|
|
15831
|
-
"every-style-editor",
|
|
15832
|
-
"feature-video",
|
|
15833
|
-
"frontend-design",
|
|
15834
|
-
"gemini-imagegen",
|
|
15835
|
-
"generate_command",
|
|
15836
|
-
"git-clean-gone-branches",
|
|
15837
|
-
"git-commit",
|
|
15838
|
-
"git-commit-push-pr",
|
|
15839
|
-
"git-worktree",
|
|
15840
|
-
"lfg",
|
|
15841
|
-
"onboarding",
|
|
15842
|
-
"orchestrating-subagents",
|
|
15843
|
-
"orchestrating-swarms",
|
|
15844
|
-
"proof",
|
|
15845
|
-
"rclone",
|
|
15846
|
-
"report-bug-ce",
|
|
15847
|
-
"reproduce-bug",
|
|
15848
|
-
"resolve-pr-feedback",
|
|
15849
|
-
"setup",
|
|
15850
|
-
"slfg",
|
|
15851
|
-
"test-browser",
|
|
15852
|
-
"test-driven-development",
|
|
15853
|
-
"test-xcode",
|
|
15854
|
-
"todo-create",
|
|
15855
|
-
"todo-resolve",
|
|
15856
|
-
"todo-triage",
|
|
15857
|
-
"using-systematic",
|
|
15858
|
-
"writing-skills",
|
|
15859
|
-
"writing-systematic-skills"
|
|
15860
|
-
];
|
|
15862
|
+
// src/lib/removed-names.ts
|
|
15863
|
+
var REMOVED_BUNDLED_SKILL_NAMES = [];
|
|
15864
|
+
var REMOVED_BUNDLED_AGENT_NAMES = [];
|
|
15861
15865
|
|
|
15862
15866
|
// src/lib/config-schema.ts
|
|
15863
15867
|
var permissionSettingSchema = exports_external.enum(["ask", "allow", "deny"]);
|
|
@@ -15982,7 +15986,13 @@ var BootstrapSchema = exports_external.object({
|
|
|
15982
15986
|
examples: [{ enabled: true }, { enabled: false }]
|
|
15983
15987
|
});
|
|
15984
15988
|
function createSystematicConfigSchema(opts) {
|
|
15985
|
-
const {
|
|
15989
|
+
const {
|
|
15990
|
+
agentNames,
|
|
15991
|
+
qualifiedAgentIds,
|
|
15992
|
+
skillNames,
|
|
15993
|
+
removedSkillNames = [],
|
|
15994
|
+
removedAgentNames = []
|
|
15995
|
+
} = opts;
|
|
15986
15996
|
return exports_external.object({
|
|
15987
15997
|
$schema: exports_external.string().url().optional().meta({
|
|
15988
15998
|
description: "JSON Schema URL for IDE autocomplete. The value is informational only \u2014 the loader does not fetch or validate against it. Add this to enable IDE schema activation and field-level autocomplete in editors that support JSON Schema (VSCode, Zed, IntelliJ).",
|
|
@@ -16005,11 +16015,15 @@ function createSystematicConfigSchema(opts) {
|
|
|
16005
16015
|
description: "Per-category configuration overlays keyed by category name",
|
|
16006
16016
|
examples: [{ review: { model: "anthropic/claude-opus-4-7" } }, {}]
|
|
16007
16017
|
}),
|
|
16008
|
-
disabled_skills: exports_external.array(exports_external.enum(skillNames)).default([]).meta({
|
|
16018
|
+
disabled_skills: exports_external.array(exports_external.enum([...skillNames, ...removedSkillNames])).default([]).meta({
|
|
16009
16019
|
description: "Array of bundled skill names to disable globally. Unknown skill names are rejected at parse time.",
|
|
16010
16020
|
examples: [["ce:plan", "ce:review"]]
|
|
16011
16021
|
}),
|
|
16012
|
-
disabled_agents: exports_external.array(exports_external.enum([
|
|
16022
|
+
disabled_agents: exports_external.array(exports_external.enum([
|
|
16023
|
+
...agentNames,
|
|
16024
|
+
...qualifiedAgentIds,
|
|
16025
|
+
...removedAgentNames
|
|
16026
|
+
])).default([]).meta({
|
|
16013
16027
|
description: "Array of bundled agent names (bare or qualified category/name) to disable globally. Unknown agent names are rejected at parse time.",
|
|
16014
16028
|
examples: [
|
|
16015
16029
|
["previous-comments-reviewer", "cli-readiness-reviewer"],
|
|
@@ -16037,7 +16051,9 @@ function createSystematicConfigSchema(opts) {
|
|
|
16037
16051
|
var SystematicConfigSchema = createSystematicConfigSchema({
|
|
16038
16052
|
agentNames: BUNDLED_AGENT_NAMES,
|
|
16039
16053
|
qualifiedAgentIds: BUNDLED_AGENT_QUALIFIED_IDS,
|
|
16040
|
-
skillNames: BUNDLED_SKILL_NAMES
|
|
16054
|
+
skillNames: BUNDLED_SKILL_NAMES,
|
|
16055
|
+
removedSkillNames: REMOVED_BUNDLED_SKILL_NAMES,
|
|
16056
|
+
removedAgentNames: REMOVED_BUNDLED_AGENT_NAMES
|
|
16041
16057
|
});
|
|
16042
16058
|
var SECURITY_OVERLAY_FIELDS = [
|
|
16043
16059
|
"model",
|
|
@@ -16058,6 +16074,22 @@ var DEFAULT_CONFIG = {
|
|
|
16058
16074
|
categories: {}
|
|
16059
16075
|
};
|
|
16060
16076
|
var SECURITY_OVERLAY_FIELDS2 = new Set(SECURITY_OVERLAY_FIELDS);
|
|
16077
|
+
var CURRENT_SKILL_NAMES_SET = new Set(BUNDLED_SKILL_NAMES);
|
|
16078
|
+
var CURRENT_AGENT_NAMES_SET = new Set([
|
|
16079
|
+
...BUNDLED_AGENT_NAMES,
|
|
16080
|
+
...BUNDLED_AGENT_QUALIFIED_IDS
|
|
16081
|
+
]);
|
|
16082
|
+
function computeDroppedNames(names, allowedSet) {
|
|
16083
|
+
return names.filter((n) => !allowedSet.has(n));
|
|
16084
|
+
}
|
|
16085
|
+
function warnDroppedNames(dropped, field, warned) {
|
|
16086
|
+
for (const name of dropped) {
|
|
16087
|
+
if (warned.has(name))
|
|
16088
|
+
continue;
|
|
16089
|
+
warned.add(name);
|
|
16090
|
+
console.warn(`[systematic] "${name}" in \`${field}\` is no longer a bundled name and will be ignored. Remove it from your config to silence this warning.`);
|
|
16091
|
+
}
|
|
16092
|
+
}
|
|
16061
16093
|
function resolveConfigPath(dir, basename) {
|
|
16062
16094
|
const jsoncPath = path3.join(dir, `${basename}.jsonc`);
|
|
16063
16095
|
if (fs4.existsSync(jsoncPath))
|
|
@@ -16210,7 +16242,19 @@ function loadConfigWithSources(projectDir) {
|
|
|
16210
16242
|
agents: overlayValues(overlays.agents),
|
|
16211
16243
|
categories: overlayValues(overlays.categories)
|
|
16212
16244
|
};
|
|
16213
|
-
|
|
16245
|
+
const warned = new Set;
|
|
16246
|
+
const droppedSkills = computeDroppedNames(result.disabled_skills, CURRENT_SKILL_NAMES_SET);
|
|
16247
|
+
warnDroppedNames(droppedSkills, "disabled_skills", warned);
|
|
16248
|
+
const droppedAgents = computeDroppedNames(result.disabled_agents, CURRENT_AGENT_NAMES_SET);
|
|
16249
|
+
warnDroppedNames(droppedAgents, "disabled_agents", warned);
|
|
16250
|
+
const droppedSkillSet = new Set(droppedSkills);
|
|
16251
|
+
const droppedAgentSet = new Set(droppedAgents);
|
|
16252
|
+
const effectiveConfig = droppedSkillSet.size === 0 && droppedAgentSet.size === 0 ? result : {
|
|
16253
|
+
...result,
|
|
16254
|
+
disabled_skills: result.disabled_skills.filter((n) => !droppedSkillSet.has(n)),
|
|
16255
|
+
disabled_agents: result.disabled_agents.filter((n) => !droppedAgentSet.has(n))
|
|
16256
|
+
};
|
|
16257
|
+
return { config: effectiveConfig, overlays };
|
|
16214
16258
|
}
|
|
16215
16259
|
function mergeOverlaySources(sources) {
|
|
16216
16260
|
const result = {
|
package/dist/index.js
CHANGED
|
@@ -87,6 +87,8 @@ export interface SystematicConfigSchemaOptions {
|
|
|
87
87
|
readonly agentNames: readonly string[];
|
|
88
88
|
readonly qualifiedAgentIds: readonly string[];
|
|
89
89
|
readonly skillNames: readonly string[];
|
|
90
|
+
readonly removedSkillNames?: readonly string[];
|
|
91
|
+
readonly removedAgentNames?: readonly string[];
|
|
90
92
|
}
|
|
91
93
|
/**
|
|
92
94
|
* Construct the top-level Systematic config schema from a discovered set of
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -26,6 +26,20 @@ export interface SystematicConfig {
|
|
|
26
26
|
categories?: OverlayConfigMap;
|
|
27
27
|
}
|
|
28
28
|
export declare const DEFAULT_CONFIG: SystematicConfig;
|
|
29
|
+
/**
|
|
30
|
+
* Return the subset of `names` that are absent from `allowedSet`. These are
|
|
31
|
+
* names that parsed successfully (they are in the removed-names list so the
|
|
32
|
+
* schema accepted them) but are no longer active bundled names and must be
|
|
33
|
+
* dropped from the effective config.
|
|
34
|
+
*/
|
|
35
|
+
export declare function computeDroppedNames(names: readonly string[], allowedSet: ReadonlySet<string>): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Emit a `[systematic]` warning for each dropped name that has not already
|
|
38
|
+
* been warned about in this load invocation. The `warned` set is local to a
|
|
39
|
+
* single load call -- callers must NOT share it across independent loads.
|
|
40
|
+
* Passing a fresh set per load ensures no cross-load suppression.
|
|
41
|
+
*/
|
|
42
|
+
export declare function warnDroppedNames(dropped: string[], field: string, warned: Set<string>): void;
|
|
29
43
|
export declare function loadConfig(projectDir: string): SystematicConfig;
|
|
30
44
|
export declare function loadConfigWithSources(projectDir: string): SourceAwareConfigResult;
|
|
31
45
|
export declare function getConfigPaths(projectDir: string): {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Known-removed bundled skill and agent names.
|
|
3
|
+
*
|
|
4
|
+
* Names listed here were present in a past release but have since been removed
|
|
5
|
+
* from the bundled catalog. They are accepted (warn-and-ignore) in
|
|
6
|
+
* `disabled_skills` and `disabled_agents` so that upgrading does not brick
|
|
7
|
+
* configs that disabled them before removal. Genuinely-unknown names (typos,
|
|
8
|
+
* names that never existed) are still rejected by strict validation.
|
|
9
|
+
*
|
|
10
|
+
* This list is empty until v3 populates it with the first removed names.
|
|
11
|
+
* Add a name here only when the corresponding skill or agent directory is
|
|
12
|
+
* actually deleted from the repo.
|
|
13
|
+
*/
|
|
14
|
+
export declare const REMOVED_BUNDLED_SKILL_NAMES: readonly string[];
|
|
15
|
+
export declare const REMOVED_BUNDLED_AGENT_NAMES: readonly string[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fro.bot/systematic",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.32.1",
|
|
4
4
|
"description": "Structured engineering workflows for OpenCode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://fro.bot/systematic",
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@biomejs/biome": "2.4.16",
|
|
69
|
-
"@opencode-ai/plugin": "1.17.
|
|
70
|
-
"@opencode-ai/sdk": "1.17.
|
|
69
|
+
"@opencode-ai/plugin": "1.17.9",
|
|
70
|
+
"@opencode-ai/sdk": "1.17.9",
|
|
71
71
|
"@semantic-release/exec": "7.1.0",
|
|
72
72
|
"@types/bun": "latest",
|
|
73
73
|
"@types/js-yaml": "4.0.9",
|