15 Commits

Author SHA1 Message Date
461bc7f776 feat: clear-export extension — tool info and global pkg handling 2026-06-13 15:34:48 +01:00
fc2cf73b34 feat: story 2 — Characters can Deal Damage to Characters
- Allium spec: damage-and-health.allium
- 5 fast-check properties: damage reduces health, health non-negative,
  death at zero, self-damage forbidden, dead cannot take damage
- Character.createWithHealth factory for testing with arbitrary health
- Character.dealDamage(target, damage) method
2026-06-13 15:28:34 +01:00
75c7c63dda add transcript files 2026-06-12 22:55:33 +01:00
934551197c fix: use pi.getAllTools() instead of ctx.getAllTools()
getAllTools() is on the ExtensionAPI (pi), not on ExtensionContext (ctx).
2026-06-12 22:52:36 +01:00
9ca324342c feat: add /clear command — export session to transcripts/ and start new session
Registers a /clear slash command as a project-local extension.
Prompts for a transcript name (spaces → dashes), exports the full
session HTML (with in-memory state) to transcripts/<name>.html,
then starts a new session with parent tracking.
2026-06-12 22:51:08 +01:00
5a5e06f471 docs(AGENTS): tighten YAGNI discipline, resolve value-object contradiction
- Clarify 'value objects over primitives' is reactive, not anticipatory
- Mark the Step 3 example as aspirational domain shape, not per-story template
- Add 'What to skip per story' trap table with concrete boundaries
- Add litmus test: 'point to a failing property or don't write it'
2026-06-12 22:23:42 +01:00
e05572bcec skills I believed were committed 2026-06-12 22:08:36 +01:00
8450f90e89 update agent skill with YAGNI 2026-06-12 22:08:10 +01:00
e267c35e55 refactor(story1): clean story boundaries, introduce CharacterState record type, tighten ESLint
- Introduce CharacterState value object to group character properties
  → Character constructor reduced from 5 to 1 parameter
- Introduce Faction value type (previously bare string)
- Remove cross-story methods: isAllyOf, isAlive, isDead, add, isMax, next, diff
- Remove misleading level parameter from Health.create
- Remove trivial invariant tests (dead-code paths on fresh characters)
- Move cross-cutting invariants out of character-creation.allium
- ESLint: forbid unused params (remove argsIgnorePattern), max-params=5
- null parameters enforced by TypeScript strictNullChecks (tsconfig)
2026-06-12 20:32:44 +01:00
d3cc48c0f7 feat: Character Creation user story — ADTs, properties, and Allium spec
- Level value object (1..10, level-capped health)
- Health value object (non-negative, pure sub/add)
- Status discriminated union (alive | dead)
- Character entity with private constructor and static factory
- 9 fast-check properties covering creation invariants
- Allium spec with entities, rules, and invariants
2026-06-12 20:23:48 +01:00
9a2181318e feat: add user-story-conversation skill and fast-check integration
Add the user-story-conversation Pi skill following Ron Jeffries'
Card, Conversation, Confirmation mantra enhanced with Matt Wynne's
Example Mapping.

The skill guides users through six steps:
1. Card — user story
2. Conversation — Example Mapping (Rules, Examples, Questions, Answers)
3. Allium Spec — formal behavioural specification
4. fast-check Properties — executable verification
5. TypeScript ADTs — value objects and discriminated unions
6. Confirmation — verify all properties pass

Also update AGENTS.md with workflow guidance and add the new skill
to the Allium routing table. Add fast-check as a dependency.
2026-06-12 20:15:30 +01:00
6c57136e7f feat: add Allium pi.dev skills and upstream repository
Install Allium skills (allium, elicit, distill, propagate, tend, weed)
from the pi-allium-port, with corrected symlinks for upstream content.

Add juxt/allium as a git submodule for language reference materials.
Allium CLI v3.0.5 is already installed via Homebrew.
2026-06-12 19:55:43 +01:00
7c108b628b docs: add user story observations and implementation order 2026-06-12 19:44:59 +01:00
4b37fd6bb4 chore: clean up whitespace in docs, add mise.toml for Node version management 2026-06-12 19:41:22 +01:00
Emily Bache
22c16c8146 initial import 2026-06-03 08:41:06 +00:00