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.
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.