Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions .github/skills/developer/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,29 @@ Use this section for the detailed day-to-day command flow that was intentionally

### Validation checkpoints

1. **After first significant code edit**
Run validation in tiers — catch compile errors early, defer slow tests to the final pass only.

1. **After each significant code edit** (fast, <5s — catch compile errors immediately)
```bash
make build && make fmt
```
2. **Before `report_progress`**
2. **Before every intermediate `report_progress` call** (fast, <30s — no tests)
```bash
make agent-report-progress-no-test
```
3. **Before the FINAL `report_progress` call** (slower, once per session — includes test-unit)
```bash
make agent-report-progress
```
3. **Before final handoff when time allows**
4. **Before final handoff when time allows**
```bash
make agent-finish
Comment on lines +49 to 51
```

> **Key rule:** Run `test-unit` only before the **final** `report_progress` call, not before intermediate saves. Each unnecessary invocation adds 120+ seconds to total validation time.

> **Timeout budget:** `make test-unit` is expected to take up to 120 seconds. If it exceeds that, use `make test-impacted-go` to run only tests for packages affected by the current branch's changes.

### Change-type command matrix

- Go file changes: `make fmt`
Expand Down
21 changes: 3 additions & 18 deletions .github/workflows/smoke-call-workflow.lock.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ Everything else should be loaded **lazily** through skills only when needed.
## Critical Rules (Always Applicable)

1. If you changed files, use `report_progress` to commit and push.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[/grill-with-docs] The term "intermediate" is not defined — agents must infer what counts as an intermediate vs. final report_progress call, which could lead to skipping tests on what is actually the final push.

💡 Suggested clarification

Add a concrete heuristic, e.g.:

Intermediate = any save before the PR is ready for human review. Final = the save that creates or updates the PR targeting merge.

Without this, an agent unsure whether its current save is the last one may default to agent-report-progress every time, eliminating the optimisation.

@copilot please address this.

2. Before `report_progress`, run `make agent-report-progress` and ensure it passes.
2. Before **intermediate** `report_progress` calls, run `make agent-report-progress-no-test` (fast, no tests). Before the **final** `report_progress`, run `make agent-report-progress` (includes `test-unit`).
- Run `test-unit` only once per PR — at the final push, not on every intermediate save.
3. After Go changes, run `make fmt`.
4. After workflow markdown changes (`.md` under `.github/workflows/`), run `make recompile`.
5. Do not add `.lock.yml` files to `.gitignore`.
Expand Down
18 changes: 13 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1170,12 +1170,19 @@ sbom:
agent-finish: deps-dev fmt lint build build-wasm test-all validate-otel-contract fix recompile dependabot generate-schema-docs generate-agent-factory security-scan
@echo "Agent finished tasks successfully."

# Lightweight pre-PR gate — run before every report_progress / create_pull_request call.
# Fast pre-PR gate — run before every intermediate report_progress call.
# Skips test-unit for speed; use agent-report-progress for the final report_progress call.
# stale-lock guard (fast, no binary) + build + fmt + lint + workflow drift check.
.PHONY: agent-report-progress-no-test
agent-report-progress-no-test: check-stale-lock-files build fmt lint check-workflow-drift
@echo "Pre-PR validation passed (zero lint errors, lock files in sync). Safe to call report_progress."

# Full pre-PR gate with tests — run once before the final report_progress call.
# Includes formatting + lint validation to prevent lint-fix PR churn:
# stale-lock guard (fast, no binary) + build + fmt + lint + test-unit + workflow drift check.
.PHONY: agent-report-progress
agent-report-progress: check-stale-lock-files build fmt lint test-unit check-workflow-drift
@echo "Pre-PR validation passed (zero lint errors, lock files in sync). Safe to call report_progress."
@echo "Pre-PR validation passed (zero lint errors, lock files in sync, tests pass). Safe to call report_progress."

# Extended pre-PR gate with lock-file-only linting.
.PHONY: agent-report-progress-lint
Expand Down Expand Up @@ -1268,8 +1275,9 @@ help:
@echo " preview-docs - Preview built documentation with Astro"
@echo " clean-docs - Clean documentation artifacts (dist, node_modules, .astro)"

@echo " agent-finish - Complete validation sequence (build, test, fix, recompile, fmt, lint, security-scan)"
@echo " agent-report-progress - Lightweight pre-PR gate: check-stale-lock-files + build + fmt + lint + test-unit + check-workflow-drift"
@echo " agent-report-progress-lint - Pre-PR gate + gh aw lint lock-file check"
@echo " agent-finish - Complete validation sequence (build, test, fix, recompile, fmt, lint, security-scan)"
@echo " agent-report-progress-no-test - Fast pre-PR gate (no test-unit): check-stale-lock-files + build + fmt + lint + check-workflow-drift"
@echo " agent-report-progress - Full pre-PR gate (final save only): same as above + test-unit"
@echo " agent-report-progress-lint - Full pre-PR gate + gh aw lint lock-file check"
@echo " sbom - Generate SBOM in SPDX and CycloneDX formats (requires syft)"
@echo " help - Show this help message"
Loading