CI / validate (pull_request) Failing after 2m1s
CI / molecule-tests (1) (pull_request) Skipped
CI / molecule-tests (2) (pull_request) Skipped
CI / molecule-tests (3) (pull_request) Skipped
CI / molecule-tests (4) (pull_request) Skipped
CI / auto-merge (pull_request) Skipped
- New tests/unit/test_skills_validation.py: structure, make-target, file-ref checks + existence tests for all 10 skills - testing-and-debugging: fix molecule count (6->7), drop molecule-all-parallel/pre-push/lint-ci refs (not grm targets), add When to Invoke + Prerequisites - devx-workflow: fix rebase targets (devx-rebase/devx-pr-rebase), add When to Invoke + Prerequisites - spec-driven-development: add When to Invoke + Prerequisites
2.6 KiB
2.6 KiB
devx-workflow
Quick reference for devx tools when working on this repo.
When to Invoke
Invoke this skill when creating PRs, checking CI status, adding labels, rebasing branches, or performing any PR lifecycle operation.
Prerequisites
.venvexists (runmake setupif not).envwithDEVELOPER_GITEA_API_TOKEN,VIKUNJA_TOKEN
PR Workflow (use these, not raw git/tea/MCP)
| Task | Command |
|---|---|
| Create Vikunja task | .venv/bin/python -m devx.tools.create_task --title "..." --description "..." (make target doesn't forward args) |
| Create PR | make create-pr |
| Push + create PR | make push-with-pr |
| Check CI status | make devx-pr-status or make devx-pr-status PR=42 WAIT=1 |
| Fetch CI failure logs | make devx-pr-logs or make devx-pr-logs PR=42 JOB=quality TAIL=50 |
| Add ready-to-merge label | make devx-pr-label or make devx-pr-label PR=42 |
| Rebase current branch | make devx-rebase |
| Rebase PR via API | make devx-pr-rebase or make pr-rebase PR=42 |
Auto-merge Behavior
When the ready-to-merge label is added and all CI checks pass:
- Auto-merge validates PR title format (
GRM-N: <vikunja task title>) - If branch is behind master, auto-merge rebases via Gitea API automatically
- The rebase triggers a new CI run; the next auto-merge attempt merges
- No manual rebase needed unless the API rebase fails
Pre-merge Check
CI runs a pre-merge-check job early (after quality + detect-changes)
that validates branch format, PR title, and Vikunja task match.
This fails fast before expensive molecule tests run.
Spec-Driven CI Gates (Pre-merge)
Every PR must pass these gates before merge:
| Gate | Module | What it checks |
|---|---|---|
| Spec validation | devx.ci.validate_spec |
Spec file exists at docs/specs/<TASK-ID>.md, has REQ-IDs, all ACs checked |
| PR size | devx.ci.check_pr_size |
Max 500 lines / 10 files (excludes CHANGELOG, badges, locks) |
Full molecule tests still run on every PR (6 scenarios, all platforms).
Post-merge Auto-publish + Dependency PR
After merge to master, post-merge.yml:
- Runs release (git-cliff semver, tags, publishes to Gitea PyPI)
- Auto-creates an infra dependency PR (
devx.ci.create_dependency_pr) to bump the pinned grm version ininfra/pyproject.toml - Syncs wiki, updates Vikunja task, pushes badges
Key Rules
- Never manually merge via API — always use auto-merge with
ready-to-mergelabel - Branch naming:
GRM-N-short-description(N = Vikunja task ID) - Commit format: conventional commits (
feat:,fix:,docs:, etc.) - PR title:
GRM-N: <vikunja task title>(auto-derived bymake create-pr)