Skip to content
Merged

Dev #2495

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"plugins": [
{
"name": "genie",
"version": "4.260606.2",
"version": "4.260607.1",
"source": "./plugins/genie",
"description": "Human-AI partnership for Claude Code. Share a terminal, orchestrate workers, evolve together. Brainstorm ideas, wish them into plans, make with parallel agents, ship as one team. A coding genie that grows with your project."
}
Expand Down
1 change: 1 addition & 0 deletions .genie/agents/metrics-updater/daily-stats.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@
{"date":"2026-06-04","commits":2,"loc_added":22,"loc_removed":16,"releases":0,"contributors":["Claude","github-actions[bot]"]}
{"date":"2026-06-05","commits":0,"loc_added":0,"loc_removed":0,"releases":0,"contributors":[]}
{"date":"2026-06-06","commits":0,"loc_added":0,"loc_removed":0,"releases":0,"contributors":[]}
{"date":"2026-06-07","commits":0,"loc_added":0,"loc_removed":0,"releases":0,"contributors":[]}
1 change: 1 addition & 0 deletions .genie/agents/metrics-updater/runs.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@
{"timestamp":"2026-06-04T12:17:44Z","duration_ms":600,"status":"success","dry_run":false,"daily_stats_count":70,"charts_generated":3,"velocity_md_updated":true,"api_calls":2,"tools_generated":7,"errors":[],"metrics":{"releases_24h":1,"releases_7d":5,"merged_prs_7d":0,"avg_merge_time_h":4.8,"ship_rate_pct":97,"commits_7d":12,"loc_net_7d":-74,"contributors_7d":4},"steps":[{"name":"collect_stats","duration_ms":58},{"name":"backfill_check","duration_ms":18},{"name":"generate_charts","duration_ms":57},{"name":"generate_velocity","duration_ms":120},{"name":"generate_readme","duration_ms":63},{"name":"update_state","duration_ms":142}]}
{"timestamp": "2026-06-05T12:12:43Z", "duration_ms": 2887, "status": "success", "dry_run": false, "daily_stats_count": 31, "charts_generated": 3, "velocity_md_updated": true, "errors": [], "steps": [{"name": "collect_stats", "duration_ms": 48}, {"name": "backfill_check", "duration_ms": 16}, {"name": "generate_charts", "duration_ms": 54}, {"name": "generate_velocity", "duration_ms": 93}, {"name": "generate_readme", "duration_ms": 57}, {"name": "commit_push", "duration_ms": 2511}]}
{"timestamp": "2026-06-06T12:07:59Z", "duration_ms": 3490, "status": "success", "dry_run": false, "daily_stats_count": 32, "charts_generated": 3, "velocity_md_updated": true, "errors": [], "steps": [{"name": "collect_stats", "duration_ms": 72}, {"name": "backfill_check", "duration_ms": 18}, {"name": "generate_charts", "duration_ms": 119}, {"name": "generate_velocity", "duration_ms": 133}, {"name": "generate_readme", "duration_ms": 59}, {"name": "commit_push", "duration_ms": 2963}]}
{"timestamp": "2026-06-07T12:09:55Z", "duration_ms": 4370, "status": "success", "dry_run": false, "daily_stats_count": 33, "charts_generated": 3, "velocity_md_updated": true, "errors": [], "steps": [{"name": "collect_stats", "duration_ms": 130}, {"name": "backfill_check", "duration_ms": 17}, {"name": "generate_charts", "duration_ms": 86}, {"name": "generate_velocity", "duration_ms": 1711}, {"name": "generate_readme", "duration_ms": 53}, {"name": "commit_push", "duration_ms": 2256}]}
6 changes: 3 additions & 3 deletions .genie/agents/metrics-updater/state.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"last_run": "2026-06-06T12:07:59Z",
"last_run": "2026-06-07T12:09:55Z",
"last_run_status": "success",
"last_metrics": {
"releases_24h": 1,
Expand All @@ -12,8 +12,8 @@
"contributors_7d": 4,
"note": "merged_prs_7d=0: team uses direct commits to dev branch (confirmed by GitHub API)"
},
"daily_stats_count": 32,
"daily_stats_count": 33,
"charts_generated": 3,
"velocity_md_updated": true,
"duration_ms": 3490
"duration_ms": 4370
}
24 changes: 12 additions & 12 deletions .genie/assets/commits-30d.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 7 additions & 7 deletions .genie/assets/loc-30d.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions .genie/assets/releases-30d.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@ jobs:
exit 1
fi

# Visual regression — TUI snapshots locked to the Severance Lumon-MDR
# palette (Group 6 of the design-system-severance wish). Any palette
# Visual regression — TUI snapshots locked to the petrol/mint
# palette. Any palette
# token change without a matching `bun test test/visual/ -u` rerun
# produces a snapshot diff and fails the build. Runs before knip so a
# palette regression surfaces with a clean error rather than after
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ Wish: `wish/tui-native-selection`.

### Breaking — design system

- **Unified design system on the Severance Lumon-MDR palette.** All color
- **Unified design system on the petrol/mint palette.** All color
tokens now live in a single workspace package, `packages/genie-tokens/`,
consumed by the TUI (`src/tui/theme.ts`), the desktop app
(`packages/genie-app/lib/theme.ts`), and tmux (via the generated
Expand Down
15 changes: 8 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<br />

<!-- METRICS:START -->
**🚀 18 commits** this week · **0 releases** · **-52 LoC** · **4 contributors**
**🚀 14 commits** this week · **0 releases** · **-54 LoC** · **4 contributors**

![Commits per day (30d, all branches)](.genie/assets/commits-30d.svg)

Expand All @@ -29,14 +29,15 @@ Genie is a CLI that turns one sentence into a finished pull request. You describ
curl -fsSL https://raw.githubusercontent.com/automagik-dev/genie/main/install.sh | bash
```

Every release is cosign-signed with SLSA provenance — the installer verifies the binary before it runs. Then:
Every release is cosign-signed with SLSA provenance — the installer verifies the binary before it runs.

```bash
genie
/wizard # interviews you, scaffolds your project, walks your first wish
Then, in Claude Code, Codex, or any AI coding agent, run the onboarding wizard:

```text
/wizard
```

Run `genie doctor` anytime to check your install.
It interviews you, scaffolds the project, and walks you through your first wish. Prefer the cockpit? `genie` opens the terminal UI; `genie doctor` checks your install.

## What you get

Expand Down Expand Up @@ -140,7 +141,7 @@ A ground-up rewrite.

## Design

A single dark-only palette inspired by **Severance** — one source of truth (`packages/genie-tokens/`), three consumers (TUI, desktop app, tmux).
A single dark-only palette from one source of truth (`packages/genie-tokens/`), shared by three consumers (TUI, desktop app, tmux).

---

Expand Down
23 changes: 17 additions & 6 deletions VELOCITY.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Velocity Dashboard

> Last updated: 2026-06-06 12:07 UTC | Data range: 2026-05-06 to 2026-06-06
> Last updated: 2026-06-07 12:09 UTC | Data range: 2026-05-06 to 2026-06-07

## At a Glance

| Metric | 7 days | 30 days | All time |
|--------|-------:|--------:|---------:|
| Commits | 18 | 136 | 136 |
| Releases | 0 | 0 | 0 |
| LoC (net) | -52 | +939.5K | — |
| Contributors | 4 | 8 | 8 |
| Commits | 14 | 136 | 5.6K |
| Releases | 0 | 0 | 640 |
| LoC (net) | -54 | +939.5K | — |
| Contributors | 4 | 8 | 37 |

---

Expand Down Expand Up @@ -40,4 +40,15 @@
| 7 | Genie Automagik | 11 |
| 8 | automagik-genie | 1 |

*8 contributors since 2026-05-22*
*37 contributors since 2025-09-27*

---

## Major Version Milestones

> How long did it take to build each major version, from where we were to where we landed.

| Milestone | Period | Days | Commits (linear) | Commits (all) | PRs merged | LoC (net) | Contributors |
|-----------|--------|-----:|-----------------:|--------------:|-----------:|----------:|-------------:|
| Genesis → v4 stable | 2026-05-23 → 2026-03-23 | -61 | 1.3K | 5.6K | 110 | +60.2K | 22 |
| v3 → v4 (version sprint) | 2026-03-08 → 2026-03-23 | 15 | 189 | 3.6K | 65 | +22.2K | 11 |
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@automagik/genie",
"version": "4.260606.2",
"version": "4.260607.1",
"description": "Collaborative terminal toolkit for human + AI workflows. NOTE: npm distribution discontinued 2026-05-09 — install via `curl -fsSL https://raw.githubusercontent.com/automagik-dev/genie/main/install.sh | bash` (cosign + SLSA verified). See https://automagik.dev/genie/release-process",
"type": "module",
"bin": {
Expand Down
4 changes: 2 additions & 2 deletions packages/genie-app/lib/theme.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Genie design tokens — re-export from `@automagik/genie-tokens`.
*
* Severance Lumon-MDR palette: petrol bg, mint accent, calm amber/crimson alarms.
* Petrol/mint palette: petrol bg, mint accent, calm amber/crimson alarms.
* All views import `palette`/`tokens` from here; never hard-code hex.
*/

Expand All @@ -26,7 +26,7 @@ export const radii = {
* from `genie-tokens`.
*/
export const theme = {
// Accent surface (legacy purple/violet → Severance mint)
// Accent surface (legacy purple/violet → mint)
purple: palette.accentBright,
violet: palette.accent,
cyan: palette.info,
Expand Down
18 changes: 9 additions & 9 deletions packages/genie-tokens/__tests__/palette.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ describe('palette shape', () => {
}
});

test('Severance signature values are exact', () => {
test('signature palette values are exact', () => {
expect(palette.bg).toBe('#0a1d2a');
expect(palette.accent).toBe('#7fc8a9');
expect(palette.error).toBe('#a83838');
Expand All @@ -59,9 +59,9 @@ describe('semantic tokens', () => {
'dangerStrong',
'attention',
'info',
'severed',
'outieWarm',
'lumonBeige',
'muted',
'warm',
'beige',
] as const;

test.each(requiredAliases)('%s is exposed and resolves to a palette value', (alias) => {
Expand All @@ -79,9 +79,9 @@ describe('semantic tokens', () => {
expect(tokens.dangerStrong).toBe(palette.errorBright);
expect(tokens.attention).toBe(palette.warning);
expect(tokens.info).toBe(palette.info);
expect(tokens.severed).toBe(palette.innieGrey);
expect(tokens.outieWarm).toBe(palette.outieAmber);
expect(tokens.lumonBeige).toBe(palette.beige);
expect(tokens.muted).toBe(palette.mutedGrey);
expect(tokens.warm).toBe(palette.warmAmber);
expect(tokens.beige).toBe(palette.beige);
});
});

Expand All @@ -103,8 +103,8 @@ describe('WCAG AA contrast', () => {
});

test('errorBright on bg meets 3:1 — escalated alarm state must be readable', () => {
// Note: `palette.error` (#a83838) is intentionally desaturated per the Severance
// design ("Red is rare and means alarm — never decorative"). When higher contrast
// Note: `palette.error` (#a83838) is intentionally desaturated by design
// ("Red is rare and means alarm — never decorative"). When higher contrast
// is required, surfaces use `errorBright` (the hover/escalation state).
expect(contrast(palette.errorBright, palette.bg)).toBeGreaterThanOrEqual(3);
});
Expand Down
2 changes: 1 addition & 1 deletion packages/genie-tokens/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"version": "0.1.0",
"private": true,
"type": "module",
"description": "Genie design tokens — Severance Lumon-MDR palette + semantic aliases.",
"description": "Genie design tokens — petrol/mint palette + semantic aliases.",
"main": "index.ts",
"exports": {
".": "./index.ts",
Expand Down
19 changes: 9 additions & 10 deletions packages/genie-tokens/palette.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
/**
* Severance Lumon-MDR palette — primitive hex values.
* Genie palette — primitive hex values.
*
* Reference: TV show "Severance" (Apple TV+).
* - MDR terminal: black-petrol bg, mint-green monospace text, desaturated red alarms.
* - Lumon offices: pale beige walls, deep navy carpet, fluorescent overhead light.
* - Severed/Innie palette is muted; warmth (amber) reserved for the Outie world.
* A dark, calm scheme:
* - Terminal surface: black-petrol bg, mint-green monospace text, desaturated red alarms.
* - Muted base palette; warm beige/amber reserved for rare highlights.
* - Red is rare and means alarm — never decorative.
*/
export const palette = {
// Surfaces (Lumon institutional)
// Surfaces
bg: '#0a1d2a',
bgRaised: '#0f2638',
bgHover: '#143049',
Expand All @@ -23,7 +22,7 @@ export const palette = {
border: '#2a3f4f',
borderActive: '#7fc8a9',

// Accent (MDR terminal text — replaces brand purple)
// Accent (mint terminal text — replaces brand purple)
accent: '#7fc8a9',
accentDim: '#5a9d82',
accentBright: '#9eddc1',
Expand All @@ -35,10 +34,10 @@ export const palette = {
errorBright: '#c44a4a',
info: '#5a8ca8',

// Severance accents (rare)
// Warm accents (rare)
beige: '#d4c5a9',
innieGrey: '#5e6e74',
outieAmber: '#d4a574',
mutedGrey: '#5e6e74',
warmAmber: '#d4a574',

// Scrollbar
scrollTrack: '#2a3f4f',
Expand Down
6 changes: 3 additions & 3 deletions packages/genie-tokens/tokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ export const tokens = {
info: palette.info,
success: palette.success,

severed: palette.innieGrey,
outieWarm: palette.outieAmber,
lumonBeige: palette.beige,
muted: palette.mutedGrey,
warm: palette.warmAmber,
beige: palette.beige,
} as const;

export type TokenKey = keyof typeof tokens;
2 changes: 1 addition & 1 deletion plugins/genie/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "genie",
"version": "4.260606.2",
"version": "4.260607.1",
"description": "Human-AI partnership for Claude Code. Share a terminal, orchestrate workers, evolve together. Brainstorm ideas, turn them into wishes, execute with /work, validate with /review, and ship as one team.",
"author": {
"name": "Namastex Labs"
Expand Down
2 changes: 1 addition & 1 deletion plugins/genie/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "genie-plugin",
"version": "4.260606.2",
"version": "4.260607.1",
"private": true,
"description": "Runtime dependencies for genie bundled CLIs",
"type": "module",
Expand Down
Loading
Loading