Contributing to the method¶
Choose the right location¶
- skills/: English instructions and resources required by each skill.
- docs/: short user guides, without logs or history.
- tests/: reproducible checks and explicitly triggered probes.
- hooks/: the plugin's Goose event configuration.
- scripts/: handlers called by hooks; no second plugin is required.
- Execution evidence stays separate from documentation; the tracker retains the current work status.
Start with the repository instructions. Check branch, index, permissions and pre-existing changes. Define an objective and its exclusions before modifying source.
English is the default for all repository and distributed content. Only an explicit user request authorizes a language exception; the conversation language does not. English documentation is canonical; explicitly requested translations remain separate and linked to their English source. Multilingual documentation and GitHub Pages setup/publication require separate scoped work and deployment authorization.
Write a useful instruction¶
Keep skill descriptions focused on what they do and when to use them. In the body, direct execution: intention β prerequisites β action β verified result β next action or stop. Name the action to perform, its inputs and the skill to load next; a phase description is not enough. Put conditional details in a directly linked resource. Keep the method host-neutral; hooks remain a host-specific integration.
Specify Goals/Non-goals, Given/When/Then criteria for behavior and measurable NFRs where relevant. Do not invent arbitrary numbers, implicit permissions or simulated evidence. The output contract provides the full formats; the cycle explains their use.
Verify before proposing¶
From the repository root, run:
python3 -m unittest discover -s tests -v
These tests cover source contracts and the observation handler, not model quality or a global installation. Also use available official validations for the changed component. A conflict between a validator and Goose requires checking the documentation and runtime, not automatically declaring compatibility.
Check local links and shared-resource consistency. A runtime change requires its own tests: authorized case, failure, malformed data and relevant boundaries. Run an isolated probe only with its scope and effects known; no installation or campaign is implicit.
Deliver and hand off¶
Report the files actually changed, preserved work, commands/results, limits and available judgment. For an authorized commit, verify message, hash and contents. The next step must be recoverable from the task and a self-contained prompt. Do not close a US or release based only on passing tests.