dev
- Repo stars 3,367
- License MIT
- Author updated Live
- Author repo atopile
- Domain
- Engineering
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 94 / 100 · audit passed
- Author / version / license
- @atopile · MIT
- Token usage
- Lean
- Setup complexity
- Plug-and-play
- External API key
- Not required
- Operating systems
- Unspecified (assume cross-platform)
- Runtime requirements
- Python
- Permissions
-
- Read-only
- Write / modify
- Env read
- Network behavior
- External requests
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: dev
description: LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, co…
category: engineering
runtime: Python
---
# dev output preview
## PART A: Task fit
- Use case: LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, consume test-report.json/html artifacts, and discover/debug ConfigFlags..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “Quick Start / Relevant Files / Dependants (Call Sites)” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, consume test-report.json/html artifacts, and discover/debug ConfigFlags.”.
- **02** When the source has headings, the agent prioritizes “Quick Start / Relevant Files / Dependants (Call Sites)” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files, read environment variables; may access external network resources; usually needs no extra API key.
## Running Rules
- read files, write/modify files, read environment variables; may access external network resources; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files, read environment variables.
Start with a small task and check whether the result follows “Quick Start / Relevant Files / Dependants (Call Sites)”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: dev
description: LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, co…
category: engineering
source: atopile/atopile
---
# dev
## When to use
- LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, consume test-report.json…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “Quick Start / Relevant Files / Dependants (Call Sites)” and keep inference separate from source facts.
- read files, write/modify files, read environment variables; may access external network resources; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "dev" {
input -> user goal + target files + boundaries + acceptance criteria
context -> Quick Start / Relevant Files / Dependants (Call Sites)
rules -> SKILL.md triggers / order / output contract
runtime -> Python | read files, write/modify files, read environment variables | may access external network resources
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} Dev Module
This skill is written for LLMs working inside this repo. It focuses on the fastest, most reliable inner loop:
- rebuild Zig bindings when needed
- run the repo’s orchestrated test runner (
ato dev test --llm, not raw test output) - use the generated test reports (
artifacts/test-report.json,artifacts/test-report.html,artifacts/test-report.llm.json) - discover and use
ConfigFlags correctly (and inventory them repo-wide)
Quick Start
source .venv/bin/activate
ato dev compile
ato dev test --llm -k solver
ato dev test --llm --view HEAD --open
ato dev test --reuse --baseline HEAD~1
ato dev flags
Relevant Files
- CLI commands:
src/atopile/cli/dev.pyato dev compile(triggers Zig build viaimport faebryk.core.zig)ato dev test --llm(runstest/runner/main.pywith args; supports baseline/CI report helpers)
- Zig build-on-import glue:
src/faebryk/core/zig/__init__.py(ZIG_NORECOMPILE,ZIG_RELEASEMODE) - Config flags utility:
src/faebryk/libs/util.py(ConfigFlag,ConfigFlagInt, …) - Test runner + reports:
test/runner/main.py(artifacts/test-report.json,artifacts/test-report.html,artifacts/test-report.llm.json) - CI artifacts definition:
.github/workflows/pytest.yml(test-report.json,test-report.html)
Dependants (Call Sites)
- CI/CD: The
devcommands are the primary interface for GitHub Actions workflows. - Local Development: Developers use
ato dev compileafter modifying Zig code.
How to Work With / Develop / Test
Core Commands
ato dev compile: compile native extensions (graph/typegraph/sexp bindings).ato dev test --llm: runs the orchestrated test runner (defaults to-p test -p src); supports:-kfilter (-- -k ...also works via passthrough args)--baselinecomparisons (commit hash orHEAD~Nstyle)--view/--opento fetch and open thetest-report.htmlartifact from GitHub Actions (requiresghCLI)--cito apply the CI marker expression (not not_in_ci and not regression and not slow)--direct -k <testname>to run a single test viatest/runtest.py(tight single-test loops)
Test Reports (JSON as source of truth)
Local test runs write:
artifacts/test-report.json(single source of truth; outcomes/durations/memory/baseline compare status + stdout/stderr/logs/tracebacks; seetests[].output_full)artifacts/test-report.html(human dashboard; derived from JSON; controlled byFBRK_TEST_GENERATE_HTML=1)artifacts/test-report.llm.json(LLM-friendly; derived from JSON; ANSI stripped logs)
CI uploads both artifacts (see .github/workflows/pytest.yml):
test-report.jsontest-report.html
Notes for LLM debugging:
- Prefer
artifacts/test-report.jsonorartifacts/test-report.llm.jsonover raw output; they include structured failures, logs, baseline compare, and collection errors. - The HTML is best for quickly scanning long-running tests, worker crashes, and per-test output.
Remote/baseline behavior:
ato dev test --llm --baseline <commit>uses the CItest-report.jsonartifact as the baseline (requiresghCLI).ato dev test --llm --view <commit> --opencurrently fetches/opens only the HTML artifact; for JSON, download thetest-report.jsonartifact viagh run download.ato dev test --reuse --baseline <commit>rebuilds JSON/HTML/LLM against a baseline without rerunning tests.ato dev test --keep-openkeeps the live report server running after tests finish.
Useful test-runner environment variables (see test/runner/main.py):
FBRK_TEST_REPORT_INTERVAL(seconds; report refresh cadence)FBRK_TEST_LONG_THRESHOLD(seconds; “long test” threshold)FBRK_TEST_WORKERS(0= cpu count, negative scales workers)FBRK_TEST_GENERATE_HTML(1/0)FBRK_TEST_PERIODIC_HTML(1/0)FBRK_TEST_OUTPUT_MAX_BYTES(truncate preview output used by HTML;tests[].output_fullremains complete)FBRK_TEST_OUTPUT_TRUNCATE_MODE(headortail)FBRK_TEST_BIND_HOST(orchestrator bind host; default0.0.0.0)FBRK_TEST_REPORT_HOST(host used in printed report URL; default bind host)FBRK_TEST_PERF_THRESHOLD_PERCENT(default0.30)FBRK_TEST_PERF_MIN_TIME_DIFF_S(default1.0)FBRK_TEST_PERF_MIN_MEMORY_DIFF_MB(default50.0)
LLM quick usage:
artifacts/test-report.llm.jsonis always generated (ANSI stripped, full tests + logs).ato dev test --llmprints a concise summary + schema + jq hints (stdout only).- jq recipes are embedded in the report under
llm.jq_recipes. - Auto-LLM:
ato dev testenables the summary automatically when running under claude-code/codex-cli/cursor. - Force on/off via
FBRK_TEST_LLM=1orFBRK_TEST_LLM=0.
ConfigFlags (how to use + how to inventory)
ConfigFlag is the repo’s “toggle-by-env-var” mechanism. The environment variable name is the first argument to ConfigFlag(...).
Usage:
export SOME_FLAG=1
Inventory all ConfigFlags in-tree (preferred over trying to maintain a manual list):
ato dev flags
Prefer using ato dev flags when you want the full picture (types/defaults/descriptions + callsite counts) in one place.
High-leverage flags you’ll use often:
- Zig build:
ZIG_NORECOMPILE,ZIG_RELEASEMODE - Solver debug:
SLOG,SVERBOSE_TABLE,SPRINT_START,SMAX_ITERATIONS,SSHOW_SS_IS - Logs:
COLOR_LOGS,LOG_TIME,LOG_FILEINFO
Development Workflow
- Zig Changes: Edit files under
src/faebryk/core/zig/src/-> Runato dev compile. - Profiling: If something is slow, use
ato dev profile <command>to generate a flamegraph or stats.
Testing
- Main test entrypoint:
ato dev test --llm. - If you change CLI behavior, add/adjust tests under
test/that exercise the command surface.
Best Practices
- Use ConfigFlags: For experimental features or verbose debugging, use a
ConfigFlaginstead of commenting out code. - Compile often: Zig errors won’t be caught by Python tooling.
Decide Fit First
Design Intent
How To Use It
Boundaries And Review