- Python 84.5%
- HTML 12.8%
- Shell 1.6%
- Just 1.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
ci / gate (push) Successful in 1m18s
Kai Ase Siren is the current and correct full form, and has been the public name on LinkedIn since 2026-08-25. Attribution only: copyright lines and package author metadata, which are the places a full name belongs. Handles like coilysiren, prose that refers to Kai by first name, and frozen records are left alone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: coilyco-ops <coilysiren@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> Agent-Role: advocate |
||
| .agents/skills/repo-housecast | ||
| .forgejo/workflows | ||
| .github | ||
| .ward | ||
| docs | ||
| evalkit | ||
| evaluations | ||
| housecast | ||
| scripts | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .typos.toml | ||
| AGENTS.md | ||
| challenges.yaml | ||
| CLAUDE.md | ||
| justfile | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
housecast
The roster framework for agent context. It reads roster data authored as YAML (roles, personalities, boundaries, and the invariant), validates it, resolves each role's personality meld and boundary allocation, derives the identity primitives including each role's favorite color, and emits an immutable bundle. It also runs and boards the behavior evaluations against what it composed, which is what keeps the graded artifact and the shipped artifact identical.
The engine and the eval runner both live here now, moved out of agent-compose
under agent-compose#337. docs/FEATURES.md is the
inventory. Nothing is published to PyPI yet: consumers install from Forgejo,
and the distribution claim is agent-compose#347, which waits on Kai.
housecast and acompose
acompose is downstream of housecast, not its peer.
housecast owns the roster language and the engine. acompose renders the
bundle housecast emits into harness surfaces and launches them. Reading
housecast as an accessory, plugin, adapter, or helper to acompose inverts the
relationship the whole program exists to establish. The position housecast
holds relative to acompose is the position umbra holds relative to its own
downstream consumers.
The name
A house cast is the resident standing company of a theatre: a fixed troupe held
by one house under one set of conventions, able to mount any role in its book.
house is the authority noun. cast carries both casting a play and casting
metal, and that second sense is the immutable bundle.
Two other readings of the string are live. Neither one is this project, and both are named here rather than left to be discovered.
- house plus forecast -
housecastalso parses that way, and three of the four existing GitHub repositories under the string are dead housing-price forecasters. This engine forecasts nothing. - type casting -
castis a live Python concept, so a Python reader lands on coercion for a beat before they land on the theatre. This engine does no type casting worth the name.
The name is locked in agent-compose#330, which carries the full search
record.
housecast unhyphenated is the repository, the import name, and the primary
distribution. house-cast is held defensively and never shipped.
Quick start
git clone https://forgejo.coilysiren.me/coilyco-flight-deck/housecast.git
cd housecast
just sync
just compose --role director --out /tmp/bundle
just with no arguments lists every verb. just check is the offline gate:
lint, format check, types, and tests in one recipe.
Installing it elsewhere
There is no PyPI release. Depend on it from Forgejo with uv:
[project]
dependencies = ["housecast"]
[tool.uv.sources]
housecast = { git = "https://forgejo.coilysiren.me/coilyco-flight-deck/housecast.git", tag = "housecast-v0.1.0" }
That is the same shape the estate already uses for aos-eval. Add the eval
extra when the consumer needs the board runner rather than just the engine.
Layout
housecast/- the engine. Roster loading, validation, meld and boundary resolution, the OKLab favorite-colour solve, and bundle emission.housecast/data/roster.yaml- the roster the engine composes.evalkit/- the board runner, which travels with the engine so the graded artifact and the shipped artifact stay identical.challenges.yamlandevaluations/- the board and its committed evidence.scripts/- the eval workflow, with no Go anywhere in it.
License
MIT. Kai Ase Siren holds the copyright. See LICENSE.
See also
AGENTS.md- agent-facing operating context for this repository.docs/FEATURES.md- what ships today..ward/ward.yaml- catalog metadata for the cross-repo graph.