@meltstudio/meltctl 4.149.0 → 4.150.0

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 (2) hide show
  1. package/dist/index.js +303 -97
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var CLI_VERSION;
14
14
  var init_version = __esm({
15
15
  "src/utils/version.ts"() {
16
16
  "use strict";
17
- CLI_VERSION = "4.149.0";
17
+ CLI_VERSION = "4.150.0";
18
18
  }
19
19
  });
20
20
 
@@ -1364,97 +1364,210 @@ var extractionResultSchema = z.object({
1364
1364
  // ../sdk/dist/utils/health-status.js
1365
1365
  var ISSUE_RULES = [
1366
1366
  // Delivery — Roadmap
1367
- { id: "roadmap.none", dimension: "roadmap", severity: "high", label: "No roadmap" },
1367
+ {
1368
+ id: "roadmap.none",
1369
+ dimension: "roadmap",
1370
+ severity: "high",
1371
+ label: "No roadmap",
1372
+ category: "gaps",
1373
+ howToFix: "Open the project's Roadmap tab and add an active phase with at least one planned feature",
1374
+ scope: "project"
1375
+ },
1368
1376
  {
1369
1377
  id: "roadmap.no-active-phase",
1370
1378
  dimension: "roadmap",
1371
1379
  severity: "medium",
1372
- label: "Features but no active phase"
1380
+ label: "Features but no active phase",
1381
+ category: "gaps",
1382
+ howToFix: "Open the Roadmap tab and mark the phase the team is currently working on as active",
1383
+ scope: "project"
1373
1384
  },
1374
1385
  {
1375
1386
  id: "roadmap.empty-phase",
1376
1387
  dimension: "roadmap",
1377
1388
  severity: "medium",
1378
- label: "Active phase is empty"
1389
+ label: "Active phase is empty",
1390
+ category: "gaps",
1391
+ howToFix: "Open the Roadmap tab and attach the phase's planned features, or close the phase if it's done",
1392
+ scope: "project"
1379
1393
  },
1380
1394
  // Delivery — Board
1381
- { id: "board.no-mapping", dimension: "board", severity: "high", label: "No board connected" },
1382
- { id: "board.empty", dimension: "board", severity: "medium", label: "Board has no open tickets" },
1383
- { id: "board.health-low", dimension: "board", severity: "high", label: "Board health below 40%" },
1395
+ {
1396
+ id: "board.no-mapping",
1397
+ dimension: "board",
1398
+ severity: "high",
1399
+ label: "No board connected",
1400
+ category: "gaps",
1401
+ howToFix: "Open Project Settings and connect a Linear team or Jira project in the mappings card",
1402
+ scope: "project"
1403
+ },
1404
+ {
1405
+ id: "board.empty",
1406
+ dimension: "board",
1407
+ severity: "medium",
1408
+ label: "Board has no open tickets",
1409
+ category: "sprint",
1410
+ howToFix: "Confirm the team is creating stories on the board, or that the mapping is correct",
1411
+ scope: "project"
1412
+ },
1413
+ {
1414
+ id: "board.health-low",
1415
+ dimension: "board",
1416
+ severity: "high",
1417
+ label: "Board health below 40%",
1418
+ category: "sprint",
1419
+ howToFix: "Open the project's Linear board and triage the failing audit checks",
1420
+ scope: "project"
1421
+ },
1384
1422
  {
1385
1423
  id: "board.health-mid",
1386
1424
  dimension: "board",
1387
1425
  severity: "medium",
1388
- label: "Board health 40\u201369%"
1426
+ label: "Board health 40\u201369%",
1427
+ category: "sprint",
1428
+ howToFix: "Open the project's Linear board and triage the failing audit checks",
1429
+ scope: "project"
1430
+ },
1431
+ {
1432
+ id: "board.audit-stale",
1433
+ dimension: "board",
1434
+ severity: "medium",
1435
+ label: "Board audit stale",
1436
+ category: "sprint",
1437
+ howToFix: "Open the project page and click 'Run board audit' to refresh the score",
1438
+ scope: "project"
1389
1439
  },
1390
- { id: "board.audit-stale", dimension: "board", severity: "medium", label: "Board audit stale" },
1391
1440
  // Delivery — Risks
1392
1441
  {
1393
1442
  id: "risks.stale-red-zone",
1394
1443
  dimension: "risks",
1395
1444
  severity: "critical",
1396
- label: "Red-zone risk with no recent comment"
1445
+ label: "Red-zone risk with no recent comment",
1446
+ category: "risks",
1447
+ howToFix: "Open the risk in Linear, add a fresh status comment, or close it if resolved",
1448
+ scope: "project"
1397
1449
  },
1398
1450
  {
1399
1451
  id: "risks.active-red-zone",
1400
1452
  dimension: "risks",
1401
1453
  severity: "medium",
1402
- label: "Open red-zone risk"
1454
+ label: "Open red-zone risk",
1455
+ category: "risks",
1456
+ howToFix: "Review the open red-zone risk at this Tuesday's risk review and confirm an owner",
1457
+ scope: "project"
1403
1458
  },
1404
1459
  // Delivery — Activity
1405
1460
  {
1406
- id: "activity.dead",
1461
+ id: "activity.dormant",
1407
1462
  dimension: "activity",
1408
- severity: "high",
1409
- label: "No activity in 21+ days"
1463
+ severity: "medium",
1464
+ label: "No activity in 21+ days",
1465
+ category: "gaps",
1466
+ howToFix: "No meltctl activity in N days \u2014 confirm the project is still active, or mark it on-hold",
1467
+ scope: "project"
1410
1468
  },
1469
+ // Delivery — Plans
1411
1470
  {
1412
- id: "activity.quiet",
1413
- dimension: "activity",
1471
+ id: "plans.stale",
1472
+ dimension: "plans",
1414
1473
  severity: "medium",
1415
- label: "No activity in 10\u201320 days"
1474
+ label: "No recent plan",
1475
+ category: "plans",
1476
+ howToFix: "Remind the team to run `meltctl plan submit` before starting new tickets",
1477
+ scope: "project"
1478
+ },
1479
+ {
1480
+ id: "plans.unscored",
1481
+ dimension: "plans",
1482
+ severity: "low",
1483
+ label: "Plans not yet scored",
1484
+ category: "plans",
1485
+ howToFix: "Open the plan and click 'Score plan' to run the rubric",
1486
+ scope: "project"
1487
+ },
1488
+ {
1489
+ id: "plans.stuck",
1490
+ dimension: "plans",
1491
+ severity: "high",
1492
+ label: "Plan can't be scored",
1493
+ category: "plans",
1494
+ howToFix: "Re-run `meltctl plan submit` with a valid ticket, or close the plan if it's no longer relevant",
1495
+ scope: "project"
1416
1496
  },
1417
- // Delivery — Plans
1418
- { id: "plans.stale", dimension: "plans", severity: "medium", label: "No recent plan" },
1419
1497
  // Delivery — Standups
1420
1498
  {
1421
1499
  id: "standups.low",
1422
1500
  dimension: "standups",
1423
1501
  severity: "medium",
1424
- label: "Standup submission below 50%"
1502
+ label: "Standup submission below 50%",
1503
+ category: "standup",
1504
+ howToFix: "Remind the team that standup is set for 9am Colombia; follow up with non-submitters",
1505
+ scope: "project"
1425
1506
  },
1426
1507
  // Code — Findings
1427
1508
  {
1428
1509
  id: "findings.critical",
1429
1510
  dimension: "findings",
1430
1511
  severity: "critical",
1431
- label: "Critical audit finding"
1512
+ label: "Critical audit finding",
1513
+ category: "audits",
1514
+ howToFix: "Open the audit detail page and address the critical finding before anything else",
1515
+ scope: "project"
1516
+ },
1517
+ {
1518
+ id: "findings.high",
1519
+ dimension: "findings",
1520
+ severity: "high",
1521
+ label: "High audit finding",
1522
+ category: "audits",
1523
+ howToFix: "Open the audit detail page and schedule the high-severity finding into the sprint",
1524
+ scope: "project"
1432
1525
  },
1433
- { id: "findings.high", dimension: "findings", severity: "high", label: "High audit finding" },
1434
1526
  {
1435
1527
  id: "findings.medium",
1436
1528
  dimension: "findings",
1437
1529
  severity: "medium",
1438
- label: "Open audit warnings"
1530
+ label: "Open audit warnings",
1531
+ category: "audits",
1532
+ howToFix: "Open the audit detail page and work through the open warnings/missing checks",
1533
+ scope: "project"
1439
1534
  },
1440
1535
  // Code — Audit coverage
1441
1536
  {
1442
1537
  id: "audit.never",
1443
1538
  dimension: "audit-coverage",
1444
1539
  severity: "medium",
1445
- label: "Never audited"
1540
+ label: "Never audited",
1541
+ category: "audits",
1542
+ howToFix: "Run `/melt-audit` on the repo to create the baseline",
1543
+ scope: "project"
1446
1544
  },
1447
1545
  {
1448
1546
  id: "audit.stale",
1449
1547
  dimension: "audit-coverage",
1450
1548
  severity: "medium",
1451
- label: "Audit over 90 days old"
1549
+ label: "Audit over 90 days old",
1550
+ category: "audits",
1551
+ howToFix: "Run `/melt-audit` on the repo to refresh the baseline",
1552
+ scope: "project"
1452
1553
  },
1453
1554
  {
1454
1555
  id: "audit.partial",
1455
1556
  dimension: "audit-coverage",
1456
1557
  severity: "medium",
1457
- label: "Some repos never audited"
1558
+ label: "Some repos never audited",
1559
+ category: "audits",
1560
+ howToFix: "Run `/melt-audit` on each unaudited repo to create its baseline",
1561
+ scope: "project"
1562
+ },
1563
+ {
1564
+ id: "audit.unprocessed",
1565
+ dimension: "audit-coverage",
1566
+ severity: "low",
1567
+ label: "Audit not processed for findings",
1568
+ category: "audits",
1569
+ howToFix: "Open each audit and click 'Extract findings' to populate the findings table",
1570
+ scope: "project"
1458
1571
  }
1459
1572
  ];
1460
1573
  var RULE_BY_ID = new Map(ISSUE_RULES.map((r) => [r.id, r]));
@@ -1500,20 +1613,17 @@ var SKILL_FRONTMATTER = {
1500
1613
  setup: `---
1501
1614
  user-invocable: true
1502
1615
  description: >-
1503
- Analyze the project and customize AGENTS.md for this codebase.
1504
- Use when setting up a new project, after running meltctl init,
1505
- or when AGENTS.md has placeholder markers. Detects tech stack,
1506
- fills in project-specific sections, and merges existing standards.
1616
+ Analyze the project and customize AGENTS.md for this codebase. Use when
1617
+ setting up a new project, after meltctl init, or when AGENTS.md has
1618
+ placeholder markers.
1507
1619
  ---
1508
1620
 
1509
1621
  `,
1510
1622
  plan: `---
1511
1623
  user-invocable: true
1512
1624
  description: >-
1513
- Design an implementation approach before writing code. Use when
1514
- starting a feature, tackling a complex task, or when the developer
1515
- says "plan this" or "how should we approach this". Gathers requirements,
1516
- explores codebase, and presents a step-by-step plan for approval.
1625
+ Design an implementation approach before writing code. Use when starting
1626
+ a feature, tackling a complex task, or the developer says "plan this".
1517
1627
  ---
1518
1628
 
1519
1629
  `,
@@ -1521,40 +1631,33 @@ description: >-
1521
1631
  user-invocable: true
1522
1632
  description: >-
1523
1633
  Review code changes against project standards and address PR feedback.
1524
- Use when the developer asks to review changes, check code quality,
1525
- or respond to PR reviewer comments. Categorizes findings as must-fix,
1526
- should-fix, or suggestions.
1634
+ Use when the developer asks to review changes or respond to PR reviewer
1635
+ comments.
1527
1636
  ---
1528
1637
 
1529
1638
  `,
1530
1639
  pr: `---
1531
1640
  user-invocable: true
1532
1641
  description: >-
1533
- Create a well-structured pull request from current changes. Use when
1534
- the developer is ready to submit work, says "create a PR", or "open
1535
- a pull request". Analyzes changes, runs pre-flight checks, drafts
1536
- description, and creates the PR via gh CLI.
1642
+ Create a well-structured pull request from current changes. Use when the
1643
+ developer says "create a PR" or is ready to submit work.
1537
1644
  ---
1538
1645
 
1539
1646
  `,
1540
1647
  debug: `---
1541
1648
  user-invocable: true
1542
1649
  description: >-
1543
- Systematically investigate and fix bugs. Use when the developer
1544
- reports a bug, encounters an error, or says "debug this" or "why
1545
- is this failing". Reproduces the issue, isolates root cause, writes
1546
- regression test, and implements minimal fix.
1650
+ Systematically investigate and fix bugs. Use when the developer reports
1651
+ a bug, hits an error, or says "debug this".
1547
1652
  ---
1548
1653
 
1549
1654
  `,
1550
1655
  audit: `---
1551
1656
  user-invocable: true
1552
1657
  description: >-
1553
- Run a comprehensive project compliance audit against team standards.
1554
- Use when the developer wants to assess project health, check compliance,
1555
- or says "audit this project". Checks 15 categories including documentation,
1556
- testing, CI/CD, security, and AI tool setup. Produces a structured
1557
- report with scores and actionable fixes.
1658
+ Run a comprehensive project compliance audit against team standards. Use
1659
+ when the developer wants to assess project health or says "audit this
1660
+ project".
1558
1661
  ---
1559
1662
 
1560
1663
  `,
@@ -1562,31 +1665,25 @@ description: >-
1562
1665
  user-invocable: true
1563
1666
  description: >-
1564
1667
  Review the project's UI against usability heuristics using Chrome DevTools
1565
- MCP. Use when the developer wants to check UX quality, says "review the UI",
1566
- or "UX audit". In full audit mode, crawls the entire app. During an active
1567
- plan, scopes to the current feature and appends results to the plan file.
1668
+ MCP. Use when the developer says "review the UI" or "UX audit".
1568
1669
  ---
1569
1670
 
1570
1671
  `,
1571
1672
  "security-audit": `---
1572
1673
  user-invocable: true
1573
1674
  description: >-
1574
- Run a comprehensive security posture audit across the entire platform.
1575
- Use when the developer wants to assess security, says "security audit",
1576
- or "check our security posture". Covers infrastructure, encryption, auth,
1577
- application security, data protection, CI/CD, and compliance readiness.
1578
- Investigates all platform repositories for a holistic view.
1675
+ Run a comprehensive security posture audit across all platform
1676
+ repositories. Use when the developer says "security audit" or wants to
1677
+ assess security posture.
1579
1678
  ---
1580
1679
 
1581
1680
  `,
1582
1681
  validate: `---
1583
1682
  user-invocable: true
1584
1683
  description: >-
1585
- Run the validation plan from the plan document after implementation.
1586
- Use when the developer says "validate this", "test the feature", or
1587
- after finishing implementation. Validates end-to-end using browser,
1588
- API, or CLI testing, suggests test coverage improvements, then prompts
1589
- the developer for mandatory manual sign-off.
1684
+ Run the validation plan from the plan document after implementation. Use
1685
+ when the developer says "validate this" or "test the feature", or after
1686
+ finishing implementation.
1590
1687
  ---
1591
1688
 
1592
1689
  `,
@@ -1594,9 +1691,7 @@ description: >-
1594
1691
  user-invocable: true
1595
1692
  description: >-
1596
1693
  Update Melt skills and standards to the latest version. Use when the
1597
- developer wants the latest skill templates, says "update melt", or
1598
- after a new meltctl version is released. Fetches latest templates,
1599
- preserves project customizations in AGENTS.md, and merges changes.
1694
+ developer says "update melt" or wants the latest skill templates.
1600
1695
  ---
1601
1696
 
1602
1697
  `,
@@ -1604,9 +1699,8 @@ description: >-
1604
1699
  user-invocable: true
1605
1700
  description: >-
1606
1701
  Answer questions about the AI-First Development Playbook and team
1607
- workflow. Use when the developer asks about the development process,
1608
- what step they're on, how validation works, or any workflow question.
1609
- This is a reference skill \u2014 it explains the process, not executes it.
1702
+ workflow. Use when the developer asks about the development process or
1703
+ how a step works. Reference skill \u2014 explains, doesn't execute.
1610
1704
  ---
1611
1705
 
1612
1706
  `,
@@ -1614,9 +1708,8 @@ description: >-
1614
1708
  user-invocable: true
1615
1709
  description: >-
1616
1710
  Connect and verify required integrations (ticket tracker, browser
1617
- testing). Use after melt-setup, when tools aren't working, or when
1618
- a skill reports missing MCP connections. Guides setup, verifies
1619
- each tool works, and updates AGENTS.md connection status.
1711
+ testing). Use after melt-setup, when tools aren't working, or when a
1712
+ skill reports missing MCP connections.
1620
1713
  ---
1621
1714
 
1622
1715
  `
@@ -4055,97 +4148,210 @@ var extractionResultSchema2 = z2.object({
4055
4148
  });
4056
4149
  var ISSUE_RULES2 = [
4057
4150
  // Delivery — Roadmap
4058
- { id: "roadmap.none", dimension: "roadmap", severity: "high", label: "No roadmap" },
4151
+ {
4152
+ id: "roadmap.none",
4153
+ dimension: "roadmap",
4154
+ severity: "high",
4155
+ label: "No roadmap",
4156
+ category: "gaps",
4157
+ howToFix: "Open the project's Roadmap tab and add an active phase with at least one planned feature",
4158
+ scope: "project"
4159
+ },
4059
4160
  {
4060
4161
  id: "roadmap.no-active-phase",
4061
4162
  dimension: "roadmap",
4062
4163
  severity: "medium",
4063
- label: "Features but no active phase"
4164
+ label: "Features but no active phase",
4165
+ category: "gaps",
4166
+ howToFix: "Open the Roadmap tab and mark the phase the team is currently working on as active",
4167
+ scope: "project"
4064
4168
  },
4065
4169
  {
4066
4170
  id: "roadmap.empty-phase",
4067
4171
  dimension: "roadmap",
4068
4172
  severity: "medium",
4069
- label: "Active phase is empty"
4173
+ label: "Active phase is empty",
4174
+ category: "gaps",
4175
+ howToFix: "Open the Roadmap tab and attach the phase's planned features, or close the phase if it's done",
4176
+ scope: "project"
4070
4177
  },
4071
4178
  // Delivery — Board
4072
- { id: "board.no-mapping", dimension: "board", severity: "high", label: "No board connected" },
4073
- { id: "board.empty", dimension: "board", severity: "medium", label: "Board has no open tickets" },
4074
- { id: "board.health-low", dimension: "board", severity: "high", label: "Board health below 40%" },
4179
+ {
4180
+ id: "board.no-mapping",
4181
+ dimension: "board",
4182
+ severity: "high",
4183
+ label: "No board connected",
4184
+ category: "gaps",
4185
+ howToFix: "Open Project Settings and connect a Linear team or Jira project in the mappings card",
4186
+ scope: "project"
4187
+ },
4188
+ {
4189
+ id: "board.empty",
4190
+ dimension: "board",
4191
+ severity: "medium",
4192
+ label: "Board has no open tickets",
4193
+ category: "sprint",
4194
+ howToFix: "Confirm the team is creating stories on the board, or that the mapping is correct",
4195
+ scope: "project"
4196
+ },
4197
+ {
4198
+ id: "board.health-low",
4199
+ dimension: "board",
4200
+ severity: "high",
4201
+ label: "Board health below 40%",
4202
+ category: "sprint",
4203
+ howToFix: "Open the project's Linear board and triage the failing audit checks",
4204
+ scope: "project"
4205
+ },
4075
4206
  {
4076
4207
  id: "board.health-mid",
4077
4208
  dimension: "board",
4078
4209
  severity: "medium",
4079
- label: "Board health 40\u201369%"
4210
+ label: "Board health 40\u201369%",
4211
+ category: "sprint",
4212
+ howToFix: "Open the project's Linear board and triage the failing audit checks",
4213
+ scope: "project"
4214
+ },
4215
+ {
4216
+ id: "board.audit-stale",
4217
+ dimension: "board",
4218
+ severity: "medium",
4219
+ label: "Board audit stale",
4220
+ category: "sprint",
4221
+ howToFix: "Open the project page and click 'Run board audit' to refresh the score",
4222
+ scope: "project"
4080
4223
  },
4081
- { id: "board.audit-stale", dimension: "board", severity: "medium", label: "Board audit stale" },
4082
4224
  // Delivery — Risks
4083
4225
  {
4084
4226
  id: "risks.stale-red-zone",
4085
4227
  dimension: "risks",
4086
4228
  severity: "critical",
4087
- label: "Red-zone risk with no recent comment"
4229
+ label: "Red-zone risk with no recent comment",
4230
+ category: "risks",
4231
+ howToFix: "Open the risk in Linear, add a fresh status comment, or close it if resolved",
4232
+ scope: "project"
4088
4233
  },
4089
4234
  {
4090
4235
  id: "risks.active-red-zone",
4091
4236
  dimension: "risks",
4092
4237
  severity: "medium",
4093
- label: "Open red-zone risk"
4238
+ label: "Open red-zone risk",
4239
+ category: "risks",
4240
+ howToFix: "Review the open red-zone risk at this Tuesday's risk review and confirm an owner",
4241
+ scope: "project"
4094
4242
  },
4095
4243
  // Delivery — Activity
4096
4244
  {
4097
- id: "activity.dead",
4245
+ id: "activity.dormant",
4098
4246
  dimension: "activity",
4099
- severity: "high",
4100
- label: "No activity in 21+ days"
4247
+ severity: "medium",
4248
+ label: "No activity in 21+ days",
4249
+ category: "gaps",
4250
+ howToFix: "No meltctl activity in N days \u2014 confirm the project is still active, or mark it on-hold",
4251
+ scope: "project"
4101
4252
  },
4253
+ // Delivery — Plans
4102
4254
  {
4103
- id: "activity.quiet",
4104
- dimension: "activity",
4255
+ id: "plans.stale",
4256
+ dimension: "plans",
4105
4257
  severity: "medium",
4106
- label: "No activity in 10\u201320 days"
4258
+ label: "No recent plan",
4259
+ category: "plans",
4260
+ howToFix: "Remind the team to run `meltctl plan submit` before starting new tickets",
4261
+ scope: "project"
4262
+ },
4263
+ {
4264
+ id: "plans.unscored",
4265
+ dimension: "plans",
4266
+ severity: "low",
4267
+ label: "Plans not yet scored",
4268
+ category: "plans",
4269
+ howToFix: "Open the plan and click 'Score plan' to run the rubric",
4270
+ scope: "project"
4271
+ },
4272
+ {
4273
+ id: "plans.stuck",
4274
+ dimension: "plans",
4275
+ severity: "high",
4276
+ label: "Plan can't be scored",
4277
+ category: "plans",
4278
+ howToFix: "Re-run `meltctl plan submit` with a valid ticket, or close the plan if it's no longer relevant",
4279
+ scope: "project"
4107
4280
  },
4108
- // Delivery — Plans
4109
- { id: "plans.stale", dimension: "plans", severity: "medium", label: "No recent plan" },
4110
4281
  // Delivery — Standups
4111
4282
  {
4112
4283
  id: "standups.low",
4113
4284
  dimension: "standups",
4114
4285
  severity: "medium",
4115
- label: "Standup submission below 50%"
4286
+ label: "Standup submission below 50%",
4287
+ category: "standup",
4288
+ howToFix: "Remind the team that standup is set for 9am Colombia; follow up with non-submitters",
4289
+ scope: "project"
4116
4290
  },
4117
4291
  // Code — Findings
4118
4292
  {
4119
4293
  id: "findings.critical",
4120
4294
  dimension: "findings",
4121
4295
  severity: "critical",
4122
- label: "Critical audit finding"
4296
+ label: "Critical audit finding",
4297
+ category: "audits",
4298
+ howToFix: "Open the audit detail page and address the critical finding before anything else",
4299
+ scope: "project"
4300
+ },
4301
+ {
4302
+ id: "findings.high",
4303
+ dimension: "findings",
4304
+ severity: "high",
4305
+ label: "High audit finding",
4306
+ category: "audits",
4307
+ howToFix: "Open the audit detail page and schedule the high-severity finding into the sprint",
4308
+ scope: "project"
4123
4309
  },
4124
- { id: "findings.high", dimension: "findings", severity: "high", label: "High audit finding" },
4125
4310
  {
4126
4311
  id: "findings.medium",
4127
4312
  dimension: "findings",
4128
4313
  severity: "medium",
4129
- label: "Open audit warnings"
4314
+ label: "Open audit warnings",
4315
+ category: "audits",
4316
+ howToFix: "Open the audit detail page and work through the open warnings/missing checks",
4317
+ scope: "project"
4130
4318
  },
4131
4319
  // Code — Audit coverage
4132
4320
  {
4133
4321
  id: "audit.never",
4134
4322
  dimension: "audit-coverage",
4135
4323
  severity: "medium",
4136
- label: "Never audited"
4324
+ label: "Never audited",
4325
+ category: "audits",
4326
+ howToFix: "Run `/melt-audit` on the repo to create the baseline",
4327
+ scope: "project"
4137
4328
  },
4138
4329
  {
4139
4330
  id: "audit.stale",
4140
4331
  dimension: "audit-coverage",
4141
4332
  severity: "medium",
4142
- label: "Audit over 90 days old"
4333
+ label: "Audit over 90 days old",
4334
+ category: "audits",
4335
+ howToFix: "Run `/melt-audit` on the repo to refresh the baseline",
4336
+ scope: "project"
4143
4337
  },
4144
4338
  {
4145
4339
  id: "audit.partial",
4146
4340
  dimension: "audit-coverage",
4147
4341
  severity: "medium",
4148
- label: "Some repos never audited"
4342
+ label: "Some repos never audited",
4343
+ category: "audits",
4344
+ howToFix: "Run `/melt-audit` on each unaudited repo to create its baseline",
4345
+ scope: "project"
4346
+ },
4347
+ {
4348
+ id: "audit.unprocessed",
4349
+ dimension: "audit-coverage",
4350
+ severity: "low",
4351
+ label: "Audit not processed for findings",
4352
+ category: "audits",
4353
+ howToFix: "Open each audit and click 'Extract findings' to populate the findings table",
4354
+ scope: "project"
4149
4355
  }
4150
4356
  ];
4151
4357
  var RULE_BY_ID2 = new Map(ISSUE_RULES2.map((r) => [r.id, r]));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meltstudio/meltctl",
3
- "version": "4.149.0",
3
+ "version": "4.150.0",
4
4
  "description": "AI-first development tools for teams - set up AGENTS.md, Claude Code, Cursor, and OpenCode standards",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",