Four design skills now write where you point them.creative-direction, design-principles, information-architecture and design-system each declare one canonical target under the [design] output_dir you set in agentbundle-layout.toml. Before this release design-principles wrote to a fixed docs/design/principles/... path that ignored your configuration, information-architecture used a location no skill declared, creative-direction named none at all, and design-system produced no file — it now writes a token taxonomy your frontend work can read instead of re-deriving tokens every session.
Treat the pack's confinement as a strong default, not a boundary. Each of the four is instructed, before writing, to state the approved output directory, the file it read that value from, and the target path it composed. One full run was captured against the shipped wording — creative-direction, which stated all three — so this is a measured instruction for that skill and an unobserved one for the other three. The check that keeps a write inside that directory is an instruction the agent has to carry out, not something the pack enforces. Against a target reached through a symlink it was skipped in 2 of 8 observed runs, and every skip wrote outside the approved directory. The step was rewritten to require an executed real-path resolution and has refused on every run observed since, but a skipped check still leaves no trace: the file exists and looks ordinary. If you need a guarantee rather than a strong default, enforce confinement outside the agent — in the filesystem, or in a tool that refuses the write.
The how-to guides now say what each skill actually does. Nineteen steps published a "where it lands" path. Eight named a file the skill never writes, and several sent you to an aesthetic/ folder nothing produces. Every step now gives either the path its skill writes or a plain statement that it writes no artifact, so you stop waiting for a file that was never coming.