Development¶
phpbotscout is built on go-tool-base (GTB) and follows the
phpboyscout Go conventions. The authoritative instructions for both humans and AI agents live in
AGENTS.md at the repository
root — read it before making a change.
Spec-driven development¶
No non-trivial change begins without an approved specification. The governing requirements
document is phpbotscout: draft requirements; every
feature spec cites the R-* requirement identifiers it implements.
See Feature Specifications for the process and format, and the roadmap for where the work has actually got to.
The local quality gate¶
Run it before opening a merge request. CI should confirm your work, not discover it.
Conventions in brief¶
- Library-first. Features land in
pkg/as reusable components before the CLI wires them up. - TDD. Tests derive from the spec's public API and error cases, and are written first.
- BDD for workflows. CLI commands, multi-step user workflows, and service lifecycle changes
need Gherkin scenarios in
features/. - No package-level mocking hooks. They race under
t.Parallel(). Inject dependencies through functional options, struct fields, or config. - ≥90% coverage on new
pkg/code. - Conventional Commits, always scoped. No AI attribution. No
@-mentions in anything pushed to a forge.