Bootstrap the repository: first commit, catalog scaffold, no product code #1
Labels
No labels
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/housecast#1
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Outcome
Turn the empty
coilyco-flight-deck/housecastrepository into an ordinarycatalog 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 languageand the engine, and
acomposerenders its bundle into harness surfaces andlaunches them.
acomposeis downstream of it and never its peer. A README thatreads housecast as an accessory, plugin, adapter, or helper to
acomposeinverts 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.
houseis the authority noun, andcastcarries 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.
housecastalso parses as house plus forecast, and three of the four existingGitHub repositories under that string are dead housing-price forecasters. And
castis a live Python concept, so type casting is the first reading for abeat. Neither is occupation. Both are reading risks.
Decisions already made, so the build does not relitigate them
Copyright (c) 2026 Kai Siren, byte-identical in form toagent-compose/LICENSE. Standing policy for shareable work, restated inagent-compose#337.
merge-remote-main, declared asward.workflowinAGENTS.mdfrontmatter. Matches the newest Python sibling, agent-proxy. Ascaffold 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.
housecastunhyphenated for the repository, the import name,and the primary distribution.
house-castis held defensively only, nevershipped. This keeps the hyphen off the critical path.
band = "small"under[tool.agentic-os.documentation-layout]. A repository with no docs yet has nocase for the large band, and raising it later is a one-line edit.
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-proxyandcoilyco-flight-deck/agent-composeas they stand today. Read those rather than this list where the two disagree.
The trifecta.
README.md- what housecast is, the pairing withacomposestatedexplicitly including that
acomposeis downstream and not a peer, and a plainstatement that nothing ships yet. Caps are the shared README caps in
agentic-os
docs/catalog-caps-reference.md.AGENTS.md- frontmatterward.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 workflowblock is generated, so runagentic-os/scripts/apply-git-workflow.pyrather than hand-copying it.docs/FEATURES.md- the inventory. It says plainly that no capability shipsyet 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 byagentic-os/scripts/apply-agentic-os-hooks.py, never hand-written. Its BEGINand END markers are how that script finds its own block.
pyproject.toml-name = "housecast", MIT,requires-pythonat the floorthe platform seat picks, plus the
[tool.agentic-os.*]blocks the validatorsread:
repo-pointer-skills.org = "coilyco-flight-deck",documentation-layout.band = "small", and acode-comments.excludesentryfor
.pre-commit-config.yamlbecause that file is generated.justfile- the sole verb manifest. At minimumdefault,test,format,format-check,lint,typecheck,pre-commit, andpre-commit-install. No Makefile..gitignore,.gitattributes, and the typos config, following the siblingrepos.
.ward/ward.yaml- catalog metadata only, nocommands:block. Dev verbslive in the justfile now, and this file survives because
check_catalog_blockpins this exact path upstream.
.agents/skills/repo-housecast/SKILL.md- the pointer skill therepo-pointer-skillshook requires, in the same shape asagent-proxy/.agents/skills/repo-agent-proxy/SKILL.md..forgejo/workflows/ci.yml- runs the same justfile recipes the local gatesrun, so the gate and the developer never disagree. Plus
.github/actionlint.yamlsince the actionlint hook reads it.Repository metadata, which is currently blank on both the description and
the topic set while every sibling carries both.
Python composition engine for agent rosters. Reads YAML roles, personalities, and boundaries, emits an immutable bundle, and grades what it composed.ai-agents,llm,automation,python.mine or the platform seat's. Land the scaffold without waiting on it, and take
a correction to the string later.
Acceptance criteria
mainis non-empty and carries the scaffold commit.pre-commit run --all-filespasses on a fresh clone with no--no-verifyanywhere and no hook disabled to get there.
catalog-trifectapasses, meaning README, AGENTS, anddocs/FEATURES.mdall exist and all link
.ward/ward.yaml.repo-pointer-skillspasses againstrepo-housecast.justwith no arguments lists every verb, and every listed verb runs.LICENSEis MIT naming Kai Siren and the year 2026.acomposepairing including the downstreamrelationship, and names the forecast parse and the type-cast parse rather
than leaving them to be discovered.
docs/FEATURES.mdclaims no shipped capability.Out of scope, deliberately
evalkit. They move in agent-compose#337, which isblocked on #333. Nothing about this issue unblocks that, and pulling the code
in early would land it without its acceptance criteria.
it.
housecastorhouse-caston PyPI. agent-compose#347 owns itand it is
autonomy/async-consult, because a distribution claim is externallyvisible and effectively irreversible and needs Kai present at the moment of
the upload. Do not upload a placeholder as part of this scaffold.
Ownership
Filed from the Portfolio Director seat. Building foundational software is
boundary-build-foundational-software, which this seat defers, so this is abounded 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/P2matching the parent slice, andautonomy/headless, because everyexternally 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
Landed.
maincarries1ad3873, one root commit, 17 files.Acceptance criteria, each against the pushed state:
mainnon-empty and carrying the scaffold commit - yes.pre-commit run --all-fileson a fresh clone - 27 hooks, all Passed or Skipped for no matching files. No--no-verifyanywhere 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 againstrepo-housecast, which is generator output fromagentic_os.generators.generate_repo_pointer_skill.justlists 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-installall exit 0, andjust formatleaves the worktree clean.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 toagent-compose/LICENSE.acomposepairing including downstream, and names the house-plus-forecast parse and the type-cast parse - yes, both in## The name.docs/FEATURES.mdclaims no shipped capability - yes.Two build decisions worth recording, since neither was specified:
just testandjust typecheckpass by having nothing to run, which does not satisfy "every listed verb runs". No compositor code landed._typos.toml.typospasses clean and nothing here needs an exemption yet. agent-proxy carries one only becauseser8trips the dictionary, and agent-compose carries none, so the absence follows the siblings rather than departing from them.requires-pythonis>=3.12, matching the newest Python siblingevalkitand 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.