boost-skill-cli 1.0.13__tar.gz → 1.0.14__tar.gz

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 (93) hide show
  1. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/PKG-INFO +1 -1
  4. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/SOURCES.txt +1 -0
  5. boost_skill_cli-1.0.14/docs/roadmap.html +324 -0
  6. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/.gitignore +0 -0
  7. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/CLAUDE.md +0 -0
  8. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/CONTRIBUTING.md +0 -0
  9. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/LICENSE +0 -0
  10. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/MANIFEST.in +0 -0
  11. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/Makefile +0 -0
  12. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/README.md +0 -0
  13. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/SECURITY.md +0 -0
  14. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost +0 -0
  15. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/__init__.py +0 -0
  16. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/__main__.py +0 -0
  17. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/cli.py +0 -0
  18. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/commands/__init__.py +0 -0
  19. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/commands/configuration.py +0 -0
  20. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/commands/discovery.py +0 -0
  21. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/commands/info.py +0 -0
  22. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/commands/intelligence.py +0 -0
  23. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/commands/pkg.py +0 -0
  24. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/commands/quality.py +0 -0
  25. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/commands/taps.py +0 -0
  26. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/commands/team.py +0 -0
  27. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/__init__.py +0 -0
  28. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/agents.py +0 -0
  29. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/ai.py +0 -0
  30. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/catalog.py +0 -0
  31. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/config.py +0 -0
  32. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/frontmatter.py +0 -0
  33. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/gitutil.py +0 -0
  34. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/journal.py +0 -0
  35. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/lockfile.py +0 -0
  36. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/logs.py +0 -0
  37. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/output.py +0 -0
  38. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/paths.py +0 -0
  39. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/policy.py +0 -0
  40. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/rag.py +0 -0
  41. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/registry.py +0 -0
  42. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/store.py +0 -0
  43. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/core/util.py +0 -0
  44. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/data/registries.json +0 -0
  45. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_cli/errors.py +0 -0
  46. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  47. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  48. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/top_level.txt +0 -0
  49. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/docs/.claude/settings.local.json +0 -0
  50. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/docs/DEBUGGING.md +0 -0
  51. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/docs/demo.gif +0 -0
  52. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/docs/demo.tape +0 -0
  53. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/docs/index.html +0 -0
  54. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/docs/rag-architecture.md +0 -0
  55. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/pyproject.toml +0 -0
  56. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/scripts/build_registries.py +0 -0
  57. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/scripts/mutation_gate.py +0 -0
  58. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/setup.cfg +0 -0
  59. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/style/README.md +0 -0
  60. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/style/boost.css +0 -0
  61. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/style/boost.js +0 -0
  62. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/style/demo.html +0 -0
  63. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/conftest.py +0 -0
  64. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/functional/test_cli_configuration.py +0 -0
  65. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/functional/test_cli_discovery.py +0 -0
  66. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/functional/test_cli_info.py +0 -0
  67. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/functional/test_cli_intelligence.py +0 -0
  68. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/functional/test_cli_pkg.py +0 -0
  69. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/functional/test_cli_quality.py +0 -0
  70. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/functional/test_cli_taps.py +0 -0
  71. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/functional/test_cli_team.py +0 -0
  72. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/functional/test_everyday_loop.py +0 -0
  73. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/make_fixture.py +0 -0
  74. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/smoke.sh +0 -0
  75. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_agents.py +0 -0
  76. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_ai.py +0 -0
  77. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_catalog.py +0 -0
  78. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_config.py +0 -0
  79. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_errors_and_cli_table.py +0 -0
  80. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_frontmatter.py +0 -0
  81. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_gitutil.py +0 -0
  82. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_journal.py +0 -0
  83. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_lockfile.py +0 -0
  84. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_logs.py +0 -0
  85. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_mutation_hardening.py +0 -0
  86. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_output.py +0 -0
  87. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_paths.py +0 -0
  88. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_policy.py +0 -0
  89. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_rag.py +0 -0
  90. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_registry.py +0 -0
  91. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_store.py +0 -0
  92. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_util.py +0 -0
  93. {boost_skill_cli-1.0.13 → boost_skill_cli-1.0.14}/tests/unit/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.0.13
3
+ Version: 1.0.14
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.0.13'
22
- __version_tuple__ = version_tuple = (1, 0, 13)
21
+ __version__ = version = '1.0.14'
22
+ __version_tuple__ = version_tuple = (1, 0, 14)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.0.13
3
+ Version: 1.0.14
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -51,6 +51,7 @@ docs/demo.gif
51
51
  docs/demo.tape
52
52
  docs/index.html
53
53
  docs/rag-architecture.md
54
+ docs/roadmap.html
54
55
  docs/.claude/settings.local.json
55
56
  scripts/build_registries.py
56
57
  scripts/mutation_gate.py
@@ -0,0 +1,324 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>boost — Roadmap</title>
7
+ <meta name="description" content="The living roadmap for boost: shipped work, in-flight fixes, and planned quality investments — logged by the autonomous quality loop.">
8
+ <!-- Canonical boost theme ("Aurora living-glass"). Pages serves from repo
9
+ root (source path "/"), so ../style resolves to /style on the site and
10
+ over file:// locally. Recolour everything by editing style/boost.css. -->
11
+ <link rel="stylesheet" href="../style/boost.css">
12
+ <style>
13
+ /* Roadmap-specific layout — built only on boost.css :root tokens so the
14
+ page recolours with the rest of the system. No new palette. */
15
+ .topbar {
16
+ position: sticky; top: 0; z-index: 20;
17
+ display: flex; align-items: center; gap: 18px;
18
+ padding: 14px 24px; margin-bottom: 8px;
19
+ background: rgba(7,8,15,.72);
20
+ backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
21
+ border-bottom: 1px solid var(--line);
22
+ }
23
+ .topbar .logo { font-weight: 800; letter-spacing: -.02em; font-size: 18px; text-decoration: none; }
24
+ .topbar .logo span { color: var(--text-3); font-weight: 600; margin-left: 8px; font-size: 13px; }
25
+ .topbar nav { margin-left: auto; display: flex; gap: 20px; }
26
+ .topbar nav a { color: var(--text-2); text-decoration: none; font-size: 14px; font-weight: 600; }
27
+ .topbar nav a:hover { color: var(--text); }
28
+
29
+ .hero { text-align: center; padding: 56px 0 20px; }
30
+ .hero .badge { margin-bottom: 22px; }
31
+ .hero h1 { font-size: clamp(38px, 6vw, 68px); font-weight: 850; letter-spacing: -.03em; line-height: 1.05; }
32
+ .hero p { max-width: 620px; margin: 20px auto 0; color: var(--text-2); font-size: 18px; text-wrap: balance; }
33
+ .hero .cta { margin-top: 30px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
34
+
35
+ section.block { padding: 40px 0; }
36
+ .block-head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 24px; flex-wrap: wrap; }
37
+ .block-head h2 { font-size: clamp(22px, 3vw, 30px); font-weight: 800; letter-spacing: -.02em; }
38
+ .block-head .count { font-family: var(--mono); font-size: 13px; color: var(--text-3); }
39
+ .block-head .rule { flex: 1; height: 1px; background: var(--line); min-width: 40px; }
40
+
41
+ .rgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; }
42
+
43
+ .rcard { padding: 24px 22px; }
44
+ .rcard .head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
45
+ .rcard h3 { font-size: 17.5px; font-weight: 750; letter-spacing: -.01em; line-height: 1.3; }
46
+ .rcard p { font-size: 14px; color: var(--text-2); margin-top: 0; line-height: 1.6; }
47
+ .rcard .meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
48
+
49
+ /* status pill — colour encodes lifecycle stage */
50
+ .pill {
51
+ display: inline-flex; align-items: center; gap: 6px;
52
+ font-family: var(--mono); font-size: 11px; font-weight: 700;
53
+ letter-spacing: .08em; text-transform: uppercase;
54
+ padding: 4px 10px; border-radius: 999px; white-space: nowrap;
55
+ border: 1px solid currentColor;
56
+ }
57
+ .pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
58
+ .pill.shipped { color: var(--green); }
59
+ .pill.inflight { color: var(--cyan); }
60
+ .pill.next { color: var(--yellow); }
61
+ .pill.planned { color: var(--violet); }
62
+
63
+ .cat { margin-left: auto; font-family: var(--mono); font-size: 11px; color: var(--text-3); letter-spacing: .06em; text-transform: uppercase; }
64
+
65
+ /* metadata chips: complexity / impact / wow / ref */
66
+ .m { font-size: 11.5px; color: var(--text-2); background: rgba(255,255,255,.05);
67
+ border: 1px solid var(--line-soft); border-radius: 7px; padding: 3px 9px; font-family: var(--mono); }
68
+ .m b { color: var(--text); font-weight: 700; }
69
+ .m.hi b { color: var(--pink); }
70
+ .wow { color: var(--yellow); letter-spacing: 1px; }
71
+
72
+ .legend { display: flex; flex-wrap: wrap; gap: 12px 26px; margin-top: 26px; justify-content: center; color: var(--text-2); font-size: 13px; }
73
+ .legend .k { display: inline-flex; align-items: center; gap: 8px; }
74
+
75
+ footer { text-align: center; padding: 60px 0 48px; color: var(--text-3); font-size: 13px; }
76
+ footer a { color: var(--cyan); text-decoration: none; }
77
+
78
+ @media (max-width: 560px) { .topbar nav { display: none; } }
79
+ </style>
80
+ </head>
81
+ <body>
82
+
83
+ <div class="topbar">
84
+ <a class="logo" href="index.html">boost<span>Roadmap</span></a>
85
+ <nav>
86
+ <a href="index.html">Visual guide</a>
87
+ <a href="https://github.com/jonnyeclectic/boost">GitHub</a>
88
+ <a href="https://pypi.org/project/boost-skill-cli/">PyPI</a>
89
+ </nav>
90
+ </div>
91
+
92
+ <div class="wrap">
93
+
94
+ <header class="hero">
95
+ <span class="badge">living document · updated by the quality loop</span>
96
+ <h1>The <span class="grad-text">boost</span> roadmap</h1>
97
+ <p>Every finding from the autonomous quality loop lands here — what shipped,
98
+ what's mid-flight, and what's queued — scored by complexity, impact, and
99
+ a little bit of wow.</p>
100
+ <div class="cta">
101
+ <a class="btn btn-grad" href="#next">See what's next →</a>
102
+ <a class="btn btn-ghost" href="index.html">Back to the guide</a>
103
+ </div>
104
+
105
+ <div class="legend">
106
+ <span class="k"><span class="pill shipped">Shipped</span> merged &amp; released</span>
107
+ <span class="k"><span class="pill inflight">In flight</span> a PR is open</span>
108
+ <span class="k"><span class="pill next">Next</span> triaged, starting soon</span>
109
+ <span class="k"><span class="pill planned">Planned</span> on the list</span>
110
+ </div>
111
+ </header>
112
+
113
+ <!-- ================= SNAPSHOT ================= -->
114
+ <section class="block reveal">
115
+ <div class="stats">
116
+ <div class="stat"><b>4</b><span>Shipped</span></div>
117
+ <div class="stat"><b>3</b><span>Next up</span></div>
118
+ <div class="stat"><b>4</b><span>Planned</span></div>
119
+ <div class="stat"><b>≥80%</b><span>Mutation gate</span></div>
120
+ </div>
121
+ </section>
122
+
123
+ <!-- ================= SHIPPED ================= -->
124
+ <section class="block reveal" id="shipped">
125
+ <div class="block-head">
126
+ <h2>Shipped</h2><span class="count">// merged to main &amp; published</span>
127
+ <span class="rule"></span>
128
+ </div>
129
+ <div class="rgrid">
130
+
131
+ <article class="cap rcard">
132
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Testing · Bug</span></div>
133
+ <h3>Mutation hardening — <code>core/store.py</code></h3>
134
+ <p>Cut mutmut survivors 54&nbsp;→&nbsp;29 and uncovered a latent
135
+ timestamp-preservation bug the old tests masked (second-precision
136
+ <code>now_iso()</code> collisions hid <code>installed_at</code>/<code>tags</code>
137
+ preservation mutants).</p>
138
+ <div class="meta">
139
+ <span class="m">Complexity <b>M</b></span>
140
+ <span class="m hi">Impact <b>High</b></span>
141
+ <span class="m">Wow <b class="wow">★★★</b></span>
142
+ <span class="m">25 mutants killed</span>
143
+ </div>
144
+ </article>
145
+
146
+ <article class="cap rcard">
147
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Testing</span></div>
148
+ <h3>Mutation hardening — <code>core/gitutil.py</code></h3>
149
+ <p>35&nbsp;→&nbsp;1 survivor via argv-assertion tests that record the exact
150
+ git command line — sidestepping the macOS case-insensitive filesystem
151
+ that let <code>HEAD/head</code>, <code>.git/.GIT</code> and
152
+ <code>git/GIT</code> mutants survive against a real repo.</p>
153
+ <div class="meta">
154
+ <span class="m">Complexity <b>M</b></span>
155
+ <span class="m hi">Impact <b>High</b></span>
156
+ <span class="m">Wow <b class="wow">★★★★</b></span>
157
+ <span class="m">34 mutants killed</span>
158
+ </div>
159
+ </article>
160
+
161
+ <article class="cap rcard">
162
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Testing</span></div>
163
+ <h3>Mutation hardening — <code>core/frontmatter.py</code></h3>
164
+ <p>34&nbsp;→&nbsp;11 survivors with exact-equality tests, replacing
165
+ substring <code>in</code> checks a mutated string literal still
166
+ satisfied (e.g. <code>dump()</code>'s <code>XX%s:XX</code> still
167
+ <em>contains</em> <code>tags:</code>).</p>
168
+ <div class="meta">
169
+ <span class="m">Complexity <b>M</b></span>
170
+ <span class="m">Impact <b>Med</b></span>
171
+ <span class="m">Wow <b class="wow">★★★</b></span>
172
+ <span class="m">PR #22 · 23 killed</span>
173
+ </div>
174
+ </article>
175
+
176
+ <article class="cap rcard">
177
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Infra · DX</span></div>
178
+ <h3>Autonomous ship-workflow &amp; isolated worktree</h3>
179
+ <p>The loop now runs commit → PR → green CI → squash-merge → release in a
180
+ dedicated <code>~/boost-loop</code> git worktree (own venv for mutmut),
181
+ and modern <strong>git&nbsp;2.55</strong> replaced a 2017 build that
182
+ fatally choked on the global <code>zdiff3</code> config.</p>
183
+ <div class="meta">
184
+ <span class="m">Complexity <b>L</b></span>
185
+ <span class="m hi">Impact <b>High</b></span>
186
+ <span class="m">Wow <b class="wow">★★★★</b></span>
187
+ </div>
188
+ </article>
189
+
190
+ </div>
191
+ </section>
192
+
193
+ <!-- ================= NEXT ================= -->
194
+ <section class="block reveal" id="next">
195
+ <div class="block-head">
196
+ <h2>Next up</h2><span class="count">// triaged findings, starting soon</span>
197
+ <span class="rule"></span>
198
+ </div>
199
+ <div class="rgrid">
200
+
201
+ <article class="cap rcard">
202
+ <div class="head"><span class="pill next">Next</span><span class="cat">Bug · Infra</span></div>
203
+ <h3>GitHub Pages deploy is broken every push</h3>
204
+ <p>Root cause found: a bogus <code>mutants/None</code> gitlink (a stray
205
+ mutmut artifact) was committed with no <code>.gitmodules</code> entry,
206
+ so Pages' submodule checkout aborts with
207
+ <code>fatal: No url found for submodule path 'mutants/None'</code>.
208
+ Fix: stop tracking <code>mutants/</code>.</p>
209
+ <div class="meta">
210
+ <span class="m">Complexity <b>S</b></span>
211
+ <span class="m hi">Impact <b>High</b></span>
212
+ <span class="m">Wow <b class="wow">★★</b></span>
213
+ <span class="m">docs site down</span>
214
+ </div>
215
+ </article>
216
+
217
+ <article class="cap rcard">
218
+ <div class="head"><span class="pill next">Next</span><span class="cat">Hygiene · DX</span></div>
219
+ <h3>Untrack generated build noise</h3>
220
+ <p>Over a hundred <code>mutants/**</code>, <code>__pycache__/*.pyc</code>
221
+ and <code>.coverage</code> files are tracked despite being in
222
+ <code>.gitignore</code> — they churn every diff and forced careful
223
+ path-scoped <code>git add</code>s. Remove from the index.</p>
224
+ <div class="meta">
225
+ <span class="m">Complexity <b>S</b></span>
226
+ <span class="m">Impact <b>Med</b></span>
227
+ <span class="m">Wow <b class="wow">★</b></span>
228
+ <span class="m">unblocks Pages</span>
229
+ </div>
230
+ </article>
231
+
232
+ <article class="cap rcard">
233
+ <div class="head"><span class="pill next">Next</span><span class="cat">Design</span></div>
234
+ <h3>Reconcile the theme drift</h3>
235
+ <p><code>docs/index.html</code> inlines its own amber/orange palette
236
+ instead of the canonical <em>Aurora</em> cyan→violet→pink system in
237
+ <code>style/boost.css</code>. Move it onto the shared stylesheet so
238
+ one token edit recolours the guide, roadmap, and demo together.</p>
239
+ <div class="meta">
240
+ <span class="m">Complexity <b>M</b></span>
241
+ <span class="m">Impact <b>Med</b></span>
242
+ <span class="m">Wow <b class="wow">★★★</b></span>
243
+ </div>
244
+ </article>
245
+
246
+ </div>
247
+ </section>
248
+
249
+ <!-- ================= PLANNED ================= -->
250
+ <section class="block reveal" id="planned">
251
+ <div class="block-head">
252
+ <h2>Planned</h2><span class="count">// on the list</span>
253
+ <span class="rule"></span>
254
+ </div>
255
+ <div class="rgrid">
256
+
257
+ <article class="cap rcard">
258
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Testing</span></div>
259
+ <h3>Finish mutation hardening across <code>core/</code></h3>
260
+ <p>Work down the remaining survivor counts, biggest first: catalog&nbsp;(27),
261
+ util&nbsp;(26), ai&nbsp;(21), registry&nbsp;(20), lockfile&nbsp;(13),
262
+ policy&nbsp;(12), config&nbsp;(9), output&nbsp;(8), agents&nbsp;(6),
263
+ paths&nbsp;(4).</p>
264
+ <div class="meta">
265
+ <span class="m">Complexity <b>L</b></span>
266
+ <span class="m">Impact <b>Med</b></span>
267
+ <span class="m">Wow <b class="wow">★★</b></span>
268
+ <span class="m">~146 survivors</span>
269
+ </div>
270
+ </article>
271
+
272
+ <article class="cap rcard">
273
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Testing · Gap</span></div>
274
+ <h3>Bring <code>commands/</code> under mutation testing</h3>
275
+ <p>The ~5,000-line CLI command layer has <strong>zero</strong> mutation
276
+ coverage today — mutmut is scoped to <code>core/</code> only. Extend
277
+ the gate (or a second gate) to the command groups.</p>
278
+ <div class="meta">
279
+ <span class="m">Complexity <b>XL</b></span>
280
+ <span class="m hi">Impact <b>High</b></span>
281
+ <span class="m">Wow <b class="wow">★★★</b></span>
282
+ </div>
283
+ </article>
284
+
285
+ <article class="cap rcard">
286
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Design · QA</span></div>
287
+ <h3>Visual regression pass on the guide</h3>
288
+ <p>Drive <code>docs/index.html</code> in a real browser across breakpoints
289
+ to confirm the glass cards, aurora, and terminal windows render
290
+ cleanly — and to catch anything the theme reconciliation shifts.</p>
291
+ <div class="meta">
292
+ <span class="m">Complexity <b>M</b></span>
293
+ <span class="m">Impact <b>Med</b></span>
294
+ <span class="m">Wow <b class="wow">★★★</b></span>
295
+ </div>
296
+ </article>
297
+
298
+ <article class="cap rcard">
299
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Docs · Marketing</span></div>
300
+ <h3>Refresh the marketing surface</h3>
301
+ <p>Re-record <code>docs/demo.gif</code> from <code>demo.tape</code> against
302
+ the current CLI, tighten the README hero, and give the landing page a
303
+ flashier first impression that matches the Aurora theme.</p>
304
+ <div class="meta">
305
+ <span class="m">Complexity <b>M</b></span>
306
+ <span class="m">Impact <b>Med</b></span>
307
+ <span class="m">Wow <b class="wow">★★★★</b></span>
308
+ </div>
309
+ </article>
310
+
311
+ </div>
312
+ </section>
313
+
314
+ <footer>
315
+ <p>Maintained by the boost quality loop · themed with
316
+ <a href="../style/boost.css">style/boost.css</a> ·
317
+ <a href="index.html">visual guide</a></p>
318
+ </footer>
319
+
320
+ </div>
321
+
322
+ <script src="../style/boost.js" defer></script>
323
+ </body>
324
+ </html>
File without changes