Bootstrap the repository: first commit, catalog scaffold, no product code #1

Closed
opened 2026-08-27 09:35:54 +00:00 by coilyco-ops · 1 comment
Owner

Outcome

Turn the empty coilyco-flight-deck/housecast repository into an ordinary
catalog repository with one commit. Scaffold only. No compositor code, no
evalkit, no PyPI publish, no name claim.

The repository was created by Kai on 2026-08-27T09:28:38Z, which satisfies the
standing HITL gate in agent-compose#337 for repository creation. It is currently
empty, so every catalog validator, every cross-repo pointer, and every later
slice has nothing to land against. This issue closes that gap and stops there.

What housecast is

The Python composition engine for agent context. It reads roster data (roles,
personalities, boundaries, invariant) authored as YAML, validates it, resolves
each role's personality meld and boundary allocation, derives 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.

It sits in umbra's position relative to acompose. It owns the roster language
and the engine, and acompose renders its bundle into harness surfaces and
launches them. acompose is downstream of it and never its peer. A README that
reads housecast as an accessory, plugin, adapter, or helper to acompose
inverts the relationship the whole program exists to establish.

Name locked in agent-compose#330. 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, and cast
carries both casting a play and casting metal, where the second sense is the
immutable bundle.

Two reading risks the README should get ahead of rather than discover later.
housecast also parses as house plus forecast, and three of the four existing
GitHub repositories under that string are dead housing-price forecasters. And
cast is a live Python concept, so type casting is the first reading for a
beat. Neither is occupation. Both are reading risks.

Decisions already made, so the build does not relitigate them

  • License - MIT, Copyright (c) 2026 Kai Siren, byte-identical in form to
    agent-compose/LICENSE. Standing policy for shareable work, restated in
    agent-compose#337.
  • Workflow lane - merge-remote-main, declared as ward.workflow in
    AGENTS.md frontmatter. Matches the newest Python sibling, agent-proxy. A
    scaffold commit into an empty repository has no reviewer and no CI to be green
    against, so the pull-request lane would buy nothing here. Revisit when the
    compositor code lands.
  • Spelling - housecast unhyphenated for the repository, the import name,
    and the primary distribution. house-cast is held defensively only, never
    shipped. This keeps the hyphen off the critical path.
  • Documentation band - band = "small" under
    [tool.agentic-os.documentation-layout]. A repository with no docs yet has no
    case for the large band, and raising it later is a one-line edit.
  • Checkout residency - not resident. Work it from a task-scoped temporary
    clone and remove the clone once the work lands, matching agent-proxy. Revisit
    when agent-compose#337 scope A moves real code in and active development
    starts.

What to build

Grounded in coilyco-flight-deck/agent-proxy and coilyco-flight-deck/agent-compose
as they stand today. Read those rather than this list where the two disagree.

The trifecta.

  • README.md - what housecast is, the pairing with acompose stated
    explicitly including that acompose is downstream and not a peer, and a plain
    statement that nothing ships yet. Caps are the shared README caps in
    agentic-os docs/catalog-caps-reference.md.
  • AGENTS.md - frontmatter ward.workflow: merge-remote-main, then scope,
    project shape, repo boundaries, commands, validation, safety, cross-repo
    contracts, release, agent rules, checkout residency, see-also. The
    ### Git workflow block is generated, so run
    agentic-os/scripts/apply-git-workflow.py rather than hand-copying it.
  • docs/FEATURES.md - the inventory. It says plainly that no capability ships
    yet and points at agent-compose#337 for what is coming. An empty inventory
    stated honestly is correct here, and an aspirational one is not.

Repository plumbing.

  • LICENSE - MIT as decided above.
  • CLAUDE.md - the single line @AGENTS.md, matching every sibling.
  • .pre-commit-config.yaml - generated by
    agentic-os/scripts/apply-agentic-os-hooks.py, never hand-written. Its BEGIN
    and END markers are how that script finds its own block.
  • pyproject.toml - name = "housecast", MIT, requires-python at the floor
    the platform seat picks, plus the [tool.agentic-os.*] blocks the validators
    read: repo-pointer-skills.org = "coilyco-flight-deck",
    documentation-layout.band = "small", and a code-comments.excludes entry
    for .pre-commit-config.yaml because that file is generated.
  • justfile - the sole verb manifest. At minimum default, test,
    format, format-check, lint, typecheck, pre-commit, and
    pre-commit-install. No Makefile.
  • .gitignore, .gitattributes, and the typos config, following the sibling
    repos.
  • .ward/ward.yaml - catalog metadata only, no commands: block. Dev verbs
    live in the justfile now, and this file survives because check_catalog_block
    pins this exact path upstream.
  • .agents/skills/repo-housecast/SKILL.md - the pointer skill the
    repo-pointer-skills hook requires, in the same shape as
    agent-proxy/.agents/skills/repo-agent-proxy/SKILL.md.
  • .forgejo/workflows/ci.yml - runs the same justfile recipes the local gates
    run, so the gate and the developer never disagree. Plus
    .github/actionlint.yaml since the actionlint hook reads it.

Repository metadata, which is currently blank on both the description and
the topic set while every sibling carries both.

  • Proposed description: Python composition engine for agent rosters. Reads YAML roles, personalities, and boundaries, emits an immutable bundle, and grades what it composed.
  • Proposed topics: ai-agents, llm, automation, python.
  • The exact public wording is the Developer Advocate seat's call rather than
    mine or the platform seat's. Land the scaffold without waiting on it, and take
    a correction to the string later.

Acceptance criteria

  • main is non-empty and carries the scaffold commit.
  • pre-commit run --all-files passes on a fresh clone with no --no-verify
    anywhere and no hook disabled to get there.
  • catalog-trifecta passes, meaning README, AGENTS, and docs/FEATURES.md
    all exist and all link .ward/ward.yaml.
  • repo-pointer-skills passes against repo-housecast.
  • just with no arguments lists every verb, and every listed verb runs.
  • CI runs the same justfile recipes as the local gates and is green.
  • LICENSE is MIT naming Kai Siren and the year 2026.
  • The README states the acompose pairing including the downstream
    relationship, and names the forecast parse and the type-cast parse rather
    than leaving them to be discovered.
  • docs/FEATURES.md claims no shipped capability.

Out of scope, deliberately

  • The compositor and evalkit. They move in agent-compose#337, which is
    blocked on #333. Nothing about this issue unblocks that, and pulling the code
    in early would land it without its acceptance criteria.
  • The PyPI publish workflow and any release train. agent-compose#337 owns
    it.
  • Claiming housecast or house-cast on PyPI. agent-compose#347 owns it
    and it is autonomy/async-consult, because a distribution claim is externally
    visible and effectively irreversible and needs Kai present at the moment of
    the upload. Do not upload a placeholder as part of this scaffold.
  • The GitHub mirror. Separate setup, separate gate.

Ownership

Filed from the Portfolio Director seat. Building foundational software is
boundary-build-foundational-software, which this seat defers, so this is a
bounded buildable definition rather than an implementation. Handing the build
to the Agentic Platform Engineer seat.

Labels

Could not be applied. AWS credentials are stale on this host, so the org label
IDs were unreachable, the same failure recorded in agent-compose#330. Intended:
priority/P2 matching the parent slice, and autonomy/headless, because every
externally visible and irreversible action in this program is fenced off into
the two issues named under Out of scope and nothing left here needs Kai in the
room.

  • agent-compose#337 - the parent slice. Repository, packaging, publication.
  • agent-compose#329 - the design this repository exists to serve.
  • agent-compose#330 - the naming brief and the full search record.
  • agent-compose#347 - the PyPI name claim, gated on Kai.
## Outcome Turn the empty `coilyco-flight-deck/housecast` repository into an ordinary catalog repository with one commit. Scaffold only. No compositor code, no `evalkit`, no PyPI publish, no name claim. The repository was created by Kai on 2026-08-27T09:28:38Z, which satisfies the standing HITL gate in agent-compose#337 for repository creation. It is currently empty, so every catalog validator, every cross-repo pointer, and every later slice has nothing to land against. This issue closes that gap and stops there. ## What housecast is The Python composition engine for agent context. It reads roster data (roles, personalities, boundaries, invariant) authored as YAML, validates it, resolves each role's personality meld and boundary allocation, derives 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. It sits in umbra's position relative to `acompose`. It owns the roster language and the engine, and `acompose` renders its bundle into harness surfaces and launches them. `acompose` is downstream of it and never its peer. A README that reads housecast as an accessory, plugin, adapter, or helper to `acompose` inverts the relationship the whole program exists to establish. Name locked in agent-compose#330. 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, and `cast` carries both casting a play and casting metal, where the second sense is the immutable bundle. Two reading risks the README should get ahead of rather than discover later. `housecast` also parses as house plus forecast, and three of the four existing GitHub repositories under that string are dead housing-price forecasters. And `cast` is a live Python concept, so type casting is the first reading for a beat. Neither is occupation. Both are reading risks. ## Decisions already made, so the build does not relitigate them * **License** - MIT, `Copyright (c) 2026 Kai Siren`, byte-identical in form to `agent-compose/LICENSE`. Standing policy for shareable work, restated in agent-compose#337. * **Workflow lane** - `merge-remote-main`, declared as `ward.workflow` in `AGENTS.md` frontmatter. Matches the newest Python sibling, agent-proxy. A scaffold commit into an empty repository has no reviewer and no CI to be green against, so the pull-request lane would buy nothing here. Revisit when the compositor code lands. * **Spelling** - `housecast` unhyphenated for the repository, the import name, and the primary distribution. `house-cast` is held defensively only, never shipped. This keeps the hyphen off the critical path. * **Documentation band** - `band = "small"` under `[tool.agentic-os.documentation-layout]`. A repository with no docs yet has no case for the large band, and raising it later is a one-line edit. * **Checkout residency** - not resident. Work it from a task-scoped temporary clone and remove the clone once the work lands, matching agent-proxy. Revisit when agent-compose#337 scope A moves real code in and active development starts. ## What to build Grounded in `coilyco-flight-deck/agent-proxy` and `coilyco-flight-deck/agent-compose` as they stand today. Read those rather than this list where the two disagree. **The trifecta.** * `README.md` - what housecast is, the pairing with `acompose` stated explicitly including that `acompose` is downstream and not a peer, and a plain statement that nothing ships yet. Caps are the shared README caps in agentic-os `docs/catalog-caps-reference.md`. * `AGENTS.md` - frontmatter `ward.workflow: merge-remote-main`, then scope, project shape, repo boundaries, commands, validation, safety, cross-repo contracts, release, agent rules, checkout residency, see-also. The `### Git workflow` block is generated, so run `agentic-os/scripts/apply-git-workflow.py` rather than hand-copying it. * `docs/FEATURES.md` - the inventory. It says plainly that no capability ships yet and points at agent-compose#337 for what is coming. An empty inventory stated honestly is correct here, and an aspirational one is not. **Repository plumbing.** * `LICENSE` - MIT as decided above. * `CLAUDE.md` - the single line `@AGENTS.md`, matching every sibling. * `.pre-commit-config.yaml` - generated by `agentic-os/scripts/apply-agentic-os-hooks.py`, never hand-written. Its BEGIN and END markers are how that script finds its own block. * `pyproject.toml` - `name = "housecast"`, MIT, `requires-python` at the floor the platform seat picks, plus the `[tool.agentic-os.*]` blocks the validators read: `repo-pointer-skills.org = "coilyco-flight-deck"`, `documentation-layout.band = "small"`, and a `code-comments.excludes` entry for `.pre-commit-config.yaml` because that file is generated. * `justfile` - the sole verb manifest. At minimum `default`, `test`, `format`, `format-check`, `lint`, `typecheck`, `pre-commit`, and `pre-commit-install`. No Makefile. * `.gitignore`, `.gitattributes`, and the typos config, following the sibling repos. * `.ward/ward.yaml` - catalog metadata only, no `commands:` block. Dev verbs live in the justfile now, and this file survives because `check_catalog_block` pins this exact path upstream. * `.agents/skills/repo-housecast/SKILL.md` - the pointer skill the `repo-pointer-skills` hook requires, in the same shape as `agent-proxy/.agents/skills/repo-agent-proxy/SKILL.md`. * `.forgejo/workflows/ci.yml` - runs the same justfile recipes the local gates run, so the gate and the developer never disagree. Plus `.github/actionlint.yaml` since the actionlint hook reads it. **Repository metadata**, which is currently blank on both the description and the topic set while every sibling carries both. * Proposed description: `Python composition engine for agent rosters. Reads YAML roles, personalities, and boundaries, emits an immutable bundle, and grades what it composed.` * Proposed topics: `ai-agents`, `llm`, `automation`, `python`. * The exact public wording is the Developer Advocate seat's call rather than mine or the platform seat's. Land the scaffold without waiting on it, and take a correction to the string later. ## Acceptance criteria - [ ] `main` is non-empty and carries the scaffold commit. - [ ] `pre-commit run --all-files` passes on a fresh clone with no `--no-verify` anywhere and no hook disabled to get there. - [ ] `catalog-trifecta` passes, meaning README, AGENTS, and `docs/FEATURES.md` all exist and all link `.ward/ward.yaml`. - [ ] `repo-pointer-skills` passes against `repo-housecast`. - [ ] `just` with no arguments lists every verb, and every listed verb runs. - [ ] CI runs the same justfile recipes as the local gates and is green. - [ ] `LICENSE` is MIT naming Kai Siren and the year 2026. - [ ] The README states the `acompose` pairing including the downstream relationship, and names the forecast parse and the type-cast parse rather than leaving them to be discovered. - [ ] `docs/FEATURES.md` claims no shipped capability. ## Out of scope, deliberately * **The compositor and `evalkit`.** They move in agent-compose#337, which is blocked on #333. Nothing about this issue unblocks that, and pulling the code in early would land it without its acceptance criteria. * **The PyPI publish workflow and any release train.** agent-compose#337 owns it. * **Claiming `housecast` or `house-cast` on PyPI.** agent-compose#347 owns it and it is `autonomy/async-consult`, because a distribution claim is externally visible and effectively irreversible and needs Kai present at the moment of the upload. Do not upload a placeholder as part of this scaffold. * **The GitHub mirror.** Separate setup, separate gate. ## Ownership Filed from the Portfolio Director seat. Building foundational software is `boundary-build-foundational-software`, which this seat defers, so this is a bounded buildable definition rather than an implementation. **Handing the build to the Agentic Platform Engineer seat.** ## Labels Could not be applied. AWS credentials are stale on this host, so the org label IDs were unreachable, the same failure recorded in agent-compose#330. Intended: `priority/P2` matching the parent slice, and `autonomy/headless`, because every externally visible and irreversible action in this program is fenced off into the two issues named under Out of scope and nothing left here needs Kai in the room. ## Related * agent-compose#337 - the parent slice. Repository, packaging, publication. * agent-compose#329 - the design this repository exists to serve. * agent-compose#330 - the naming brief and the full search record. * agent-compose#347 - the PyPI name claim, gated on Kai.
Author
Owner

Landed. main carries 1ad3873, one root commit, 17 files.

Acceptance criteria, each against the pushed state:

  • main non-empty and carrying the scaffold commit - yes.
  • pre-commit run --all-files on a fresh clone - 27 hooks, all Passed or Skipped for no matching files. No --no-verify anywhere and no hook disabled.
  • catalog-trifecta - passed. All three files exist and all three link the other two and .ward/ward.yaml.
  • repo-pointer-skills - passed against repo-housecast, which is generator output from agentic_os.generators.generate_repo_pointer_skill.
  • just lists every verb and every listed verb runs - checked one by one on a fresh clone. default, test, format, format-check, lint, typecheck, pre-commit, pre-commit-install all exit 0, and just format leaves the worktree clean.
  • CI green - ci / gate (push) succeeded in 3m32s on run 1. Every step invokes a justfile recipe, so the gate and a local run cannot disagree.
  • LICENSE - MIT, Copyright (c) 2026 Kai Siren, byte-identical to agent-compose/LICENSE.
  • README states the acompose pairing including downstream, and names the house-plus-forecast parse and the type-cast parse - yes, both in ## The name.
  • docs/FEATURES.md claims no shipped capability - yes.

Two build decisions worth recording, since neither was specified:

  • The package carries a version and one import test. Without them just test and just typecheck pass by having nothing to run, which does not satisfy "every listed verb runs". No compositor code landed.
  • No _typos.toml. typos passes clean and nothing here needs an exemption yet. agent-proxy carries one only because ser8 trips the dictionary, and agent-compose carries none, so the absence follows the siblings rather than departing from them.

requires-python is >=3.12, matching the newest Python sibling evalkit and both interpreters the dev-base image ships. Build backend is hatchling, lint and format are ruff, types are mypy in strict mode.

Repository metadata is still blank and is now tracked in #2, handed to the Developer Advocate seat. The labels this issue could not apply are applied: priority/P2, autonomy/headless, role/platform.

Landed. `main` carries `1ad3873`, one root commit, 17 files. Acceptance criteria, each against the pushed state: * `main` non-empty and carrying the scaffold commit - yes. * `pre-commit run --all-files` on a fresh clone - 27 hooks, all Passed or Skipped for no matching files. No `--no-verify` anywhere and no hook disabled. * `catalog-trifecta` - passed. All three files exist and all three link the other two and `.ward/ward.yaml`. * `repo-pointer-skills` - passed against `repo-housecast`, which is generator output from `agentic_os.generators.generate_repo_pointer_skill`. * `just` lists every verb and every listed verb runs - checked one by one on a fresh clone. `default`, `test`, `format`, `format-check`, `lint`, `typecheck`, `pre-commit`, `pre-commit-install` all exit 0, and `just format` leaves the worktree clean. * CI green - `ci / gate (push)` succeeded in 3m32s on run 1. Every step invokes a justfile recipe, so the gate and a local run cannot disagree. * `LICENSE` - MIT, `Copyright (c) 2026 Kai Siren`, byte-identical to `agent-compose/LICENSE`. * README states the `acompose` pairing including downstream, and names the house-plus-forecast parse and the type-cast parse - yes, both in `## The name`. * `docs/FEATURES.md` claims no shipped capability - yes. Two build decisions worth recording, since neither was specified: * The package carries a version and one import test. Without them `just test` and `just typecheck` pass by having nothing to run, which does not satisfy "every listed verb runs". No compositor code landed. * No `_typos.toml`. `typos` passes clean and nothing here needs an exemption yet. agent-proxy carries one only because `ser8` trips the dictionary, and agent-compose carries none, so the absence follows the siblings rather than departing from them. `requires-python` is `>=3.12`, matching the newest Python sibling `evalkit` and both interpreters the dev-base image ships. Build backend is hatchling, lint and format are ruff, types are mypy in strict mode. Repository metadata is still blank and is now tracked in #2, handed to the Developer Advocate seat. The labels this issue could not apply are applied: `priority/P2`, `autonomy/headless`, `role/platform`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/housecast#1
No description provided.