boost-skill-cli 1.0.12__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.
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/PKG-INFO +12 -1
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/README.md +11 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/PKG-INFO +12 -1
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/SOURCES.txt +5 -0
- boost_skill_cli-1.0.14/docs/roadmap.html +324 -0
- boost_skill_cli-1.0.14/style/README.md +92 -0
- boost_skill_cli-1.0.14/style/boost.css +352 -0
- boost_skill_cli-1.0.14/style/boost.js +55 -0
- boost_skill_cli-1.0.14/style/demo.html +140 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/.gitignore +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/LICENSE +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/Makefile +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/docs/index.html +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/pyproject.toml +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/setup.cfg +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.12 → boost_skill_cli-1.0.14}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.12 → 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.
|
|
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
|
|
@@ -823,6 +823,17 @@ available on your PATH (or `ANTHROPIC_API_KEY` is set), and fall back to
|
|
|
823
823
|
plain heuristics when it isn't — so the tool still works without an API key,
|
|
824
824
|
just less cleverly.
|
|
825
825
|
|
|
826
|
+
## The boost style
|
|
827
|
+
|
|
828
|
+
The visual identity behind the docs and demos ships as a small, dependency-free
|
|
829
|
+
design system in [`style/`](style/) — the *Aurora living-glass* look: a
|
|
830
|
+
cyan → violet → pink triad on a near-black ground, an ambient aurora that drifts
|
|
831
|
+
behind the page, and glass cards that light up under the cursor. Drop
|
|
832
|
+
[`style/boost.css`](style/boost.css) (and the optional
|
|
833
|
+
[`style/boost.js`](style/boost.js)) into any static page; see
|
|
834
|
+
[`style/demo.html`](style/demo.html) for the whole system on one page and
|
|
835
|
+
[`style/README.md`](style/README.md) for the tokens and class reference.
|
|
836
|
+
|
|
826
837
|
## Working on boost
|
|
827
838
|
|
|
828
839
|
```bash
|
|
@@ -119,6 +119,17 @@ available on your PATH (or `ANTHROPIC_API_KEY` is set), and fall back to
|
|
|
119
119
|
plain heuristics when it isn't — so the tool still works without an API key,
|
|
120
120
|
just less cleverly.
|
|
121
121
|
|
|
122
|
+
## The boost style
|
|
123
|
+
|
|
124
|
+
The visual identity behind the docs and demos ships as a small, dependency-free
|
|
125
|
+
design system in [`style/`](style/) — the *Aurora living-glass* look: a
|
|
126
|
+
cyan → violet → pink triad on a near-black ground, an ambient aurora that drifts
|
|
127
|
+
behind the page, and glass cards that light up under the cursor. Drop
|
|
128
|
+
[`style/boost.css`](style/boost.css) (and the optional
|
|
129
|
+
[`style/boost.js`](style/boost.js)) into any static page; see
|
|
130
|
+
[`style/demo.html`](style/demo.html) for the whole system on one page and
|
|
131
|
+
[`style/README.md`](style/README.md) for the tokens and class reference.
|
|
132
|
+
|
|
122
133
|
## Working on boost
|
|
123
134
|
|
|
124
135
|
```bash
|
|
@@ -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.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 0,
|
|
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.
|
|
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
|
|
@@ -823,6 +823,17 @@ available on your PATH (or `ANTHROPIC_API_KEY` is set), and fall back to
|
|
|
823
823
|
plain heuristics when it isn't — so the tool still works without an API key,
|
|
824
824
|
just less cleverly.
|
|
825
825
|
|
|
826
|
+
## The boost style
|
|
827
|
+
|
|
828
|
+
The visual identity behind the docs and demos ships as a small, dependency-free
|
|
829
|
+
design system in [`style/`](style/) — the *Aurora living-glass* look: a
|
|
830
|
+
cyan → violet → pink triad on a near-black ground, an ambient aurora that drifts
|
|
831
|
+
behind the page, and glass cards that light up under the cursor. Drop
|
|
832
|
+
[`style/boost.css`](style/boost.css) (and the optional
|
|
833
|
+
[`style/boost.js`](style/boost.js)) into any static page; see
|
|
834
|
+
[`style/demo.html`](style/demo.html) for the whole system on one page and
|
|
835
|
+
[`style/README.md`](style/README.md) for the tokens and class reference.
|
|
836
|
+
|
|
826
837
|
## Working on boost
|
|
827
838
|
|
|
828
839
|
```bash
|
|
@@ -51,9 +51,14 @@ 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
|
|
58
|
+
style/README.md
|
|
59
|
+
style/boost.css
|
|
60
|
+
style/boost.js
|
|
61
|
+
style/demo.html
|
|
57
62
|
tests/conftest.py
|
|
58
63
|
tests/make_fixture.py
|
|
59
64
|
tests/smoke.sh
|
|
@@ -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 & 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 & 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 → 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 → 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 → 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 & 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 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 (27),
|
|
261
|
+
util (26), ai (21), registry (20), lockfile (13),
|
|
262
|
+
policy (12), config (9), output (8), agents (6),
|
|
263
|
+
paths (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>
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# boost style — *Aurora living-glass*
|
|
2
|
+
|
|
3
|
+
The visual identity of boost, packaged as a small, dependency-free design
|
|
4
|
+
system you can drop into any static page.
|
|
5
|
+
|
|
6
|
+
It's a **neon-tech, glassmorphic** look: a **cyan → violet → pink** triad on a
|
|
7
|
+
near-black ground, an ambient **aurora** that drifts slowly behind the page, and
|
|
8
|
+
**glass cards that light up under the cursor**. The goal is a page that feels
|
|
9
|
+
*slightly alive but not distracting* — every motion is slow, low-contrast, and
|
|
10
|
+
gated behind `prefers-reduced-motion`.
|
|
11
|
+
|
|
12
|
+
Open [`demo.html`](demo.html) to see the whole system on one page.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
style/
|
|
16
|
+
├── boost.css the design system — tokens, atmosphere, primitives, a11y
|
|
17
|
+
├── boost.js two progressive enhancements: cursor glow + reveal-on-scroll
|
|
18
|
+
├── demo.html self-contained showcase / living reference
|
|
19
|
+
└── README.md this file
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Use it
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<link rel="stylesheet" href="style/boost.css">
|
|
26
|
+
<!-- optional: cursor spotlight + reveal-on-scroll -->
|
|
27
|
+
<script src="style/boost.js" defer></script>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Everything is static — no build step, no dependencies, no webfont fetches. The
|
|
31
|
+
JavaScript is pure enhancement: with it disabled, the page is still fully styled
|
|
32
|
+
and legible (cards just don't glow, and reveal elements start visible).
|
|
33
|
+
|
|
34
|
+
## The palette
|
|
35
|
+
|
|
36
|
+
The entire identity lives in three custom properties. Recolor the system by
|
|
37
|
+
changing their **values** — never the selectors.
|
|
38
|
+
|
|
39
|
+
| Token | Value | Role |
|
|
40
|
+
|-------------|-----------|-------------------------------|
|
|
41
|
+
| `--cyan` | `#22d3ee` | primary accent |
|
|
42
|
+
| `--violet` | `#a855f7` | secondary accent |
|
|
43
|
+
| `--pink` | `#f472d0` | tertiary accent |
|
|
44
|
+
| `--bg` | `#07080f` | near-black page ground |
|
|
45
|
+
| `--text` | `#e9ebf5` | primary ink |
|
|
46
|
+
| `--grad` | cyan → violet → pink | the signature gradient |
|
|
47
|
+
|
|
48
|
+
Neutrals are intentionally cool (a slight blue bias), not pure grey, so they
|
|
49
|
+
read as chosen rather than defaulted.
|
|
50
|
+
|
|
51
|
+
## What's in the box
|
|
52
|
+
|
|
53
|
+
| Class | What it gives you |
|
|
54
|
+
|------------------|--------------------------------------------------------------------------|
|
|
55
|
+
| `.wrap` | centered `max-width` container that sits above the aurora |
|
|
56
|
+
| `.glass` | the reusable living-glass surface — blur, hover lift, cursor spotlight |
|
|
57
|
+
| `.cap` | a padded glass **card** with icon slot (`--ic-bg`/`--ic-fg`), title, tags |
|
|
58
|
+
| `.stat` / `.stats` | gradient stat figures in a responsive grid |
|
|
59
|
+
| `.badge` | a "live" pill with a breathing dot |
|
|
60
|
+
| `.btn` `.btn-grad` `.btn-ghost` | the two button treatments |
|
|
61
|
+
| `.eyebrow` `.sec-title` `.sec-sub` | section chrome (eyebrow is gradient-clipped) |
|
|
62
|
+
| `.grad-text` | gradient-clip any inline text |
|
|
63
|
+
| `.window` | a macOS-style terminal frame + `.tp/.tv/.tc/.tok/.cm` syntax tokens |
|
|
64
|
+
| `.reveal` | fades/slides in when scrolled into view (via `boost.js`) |
|
|
65
|
+
|
|
66
|
+
### The atmosphere
|
|
67
|
+
|
|
68
|
+
`body::before` (drifting aurora) and `body::after` (masked tech grid) are fixed
|
|
69
|
+
layers at `z-index: 0`. Keep your content inside `.wrap` (which sets
|
|
70
|
+
`z-index: 1`) so it sits above them.
|
|
71
|
+
|
|
72
|
+
### The cursor spotlight
|
|
73
|
+
|
|
74
|
+
`boost.js` writes the pointer's element-local position into `--mx` / `--my` on
|
|
75
|
+
each `.glass`, `.cap`, `.stat`, and `.window`. The CSS reads those in a radial
|
|
76
|
+
gradient. No JS → the variables stay unset → the spotlight simply never shows,
|
|
77
|
+
and the hover lift still works.
|
|
78
|
+
|
|
79
|
+
## Accessibility
|
|
80
|
+
|
|
81
|
+
- **`prefers-reduced-motion`** disables the aurora drift, the breathing badge,
|
|
82
|
+
the reveal animation, and the hover lift — hover still recolors, just without
|
|
83
|
+
movement.
|
|
84
|
+
- **Print** hides the atmosphere and flattens shadows/blur so pages print clean.
|
|
85
|
+
- **Focus** states are visible (`:focus-visible` uses the cyan accent).
|
|
86
|
+
- Contrast targets legible body text (`--text` on `--bg`) at the default sizes.
|
|
87
|
+
|
|
88
|
+
## Provenance
|
|
89
|
+
|
|
90
|
+
This is the aesthetic used across the boost documentation and
|
|
91
|
+
[jonnyeclectic's portfolio](https://github.com/jonnyeclectic/portfolio),
|
|
92
|
+
extracted here as a standalone, reusable system.
|