Skip to content
Merged
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
8 changes: 5 additions & 3 deletions .claude/skills/execplans/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: execplans
description: Write and maintain an ExecPlan — a self-contained, committed Markdown design document in docs/execplans/ — for work that spans more than one session or touches several files or subsystems. Use for a refactor crossing the container/view split, a tooling or dependency migration, replacing the blocked Nightwatch e2e suite, unpicking the two ESLint configs, restoring CI, or any change whose decisions and progress must survive a context reset. Also use when resuming or revising a plan already in docs/execplans/. Invoke with /execplans.
description: Write and maintain an ExecPlan — a self-contained, committed Markdown design document in docs/execplans/ — for work that spans more than one session or touches several files or subsystems. Use for a refactor crossing the container/view split, a tooling or dependency migration, adding CI or test coverage, #409's chart redraw path, or any change whose decisions and progress must survive a context reset. Also use when resuming or revising a plan already in docs/execplans/. Invoke with /execplans.
---

# ExecPlans
Expand All @@ -9,8 +9,8 @@ An ExecPlan is a Markdown design document that lives on disk and carries a piece
design through implementation. It is the durable record: someone holding only the working tree and
the plan file can pick the work up and finish it. Write one instead of relying on the built-in
plan/todo tools whenever the work meets the threshold below — those tools don't survive a context
reset, and this repo's near-term work (restoring CI, unifying the two ESLint configs, replacing the
blocked Nightwatch suite) is exactly the kind that needs to.
reset, and this repo's near-term work (adding CI, broadening test coverage, fixing #409's chart
redraw path) is exactly the kind that needs to.

Plans in this repository go in `docs/execplans/` and are committed on the working branch. **Read
`references/PLANS.md` in full before writing or revising one** — it is the specification, and its
Expand Down Expand Up @@ -44,6 +44,8 @@ Skip it for a single-file fix, a copy change, or anything a commit title already
see the addendum's "Committing" section for the exact scope.
6. Commit the plan on its own, before the first implementation commit. Then implement, updating
`Progress`, `Surprises & Discoveries`, and `Decision Log` in the same commits as the work.
Record consequential decisions and surprises, not routine development operations — see the
addendum's "Record what matters, not what happened".
7. Write `Outcomes & Retrospective` when the work lands, and commit that too.

## Resuming
Expand Down
90 changes: 48 additions & 42 deletions .claude/skills/execplans/references/PLANS.md

Large diffs are not rendered by default.

59 changes: 59 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: CI

on:
push:
branches:
- main
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
lint-and-test:
name: Lint and test
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.repository == 'mozilla/ensemble'
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version-file: '.nvmrc'
cache: npm
- name: Install dependencies
run: npm ci
- name: Compile Stylus
run: npm run build:css
- name: Run lint
run: npm run lint
- name: Run unit tests
run: npm run test:jest

e2e:
name: End-to-end tests
runs-on: ubuntu-latest
timeout-minutes: 20
if: github.repository == 'mozilla/ensemble'
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version-file: '.nvmrc'
cache: npm
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install --with-deps chromium
- name: Compile Stylus
run: npm run build:css
- name: Run end-to-end tests
run: npm run test:playwright
Loading
Loading