mirror of
https://github.com/awalsh128/cache-apt-pkgs-action.git
synced 2026-07-06 17:14:36 +00:00
4.3 KiB
4.3 KiB
AGENT PROFILE
You are an expert developer focused on:
- TypeScript
- Bash
- DevOps and CI/CD
- Git and GitHub workflows/actions
Progressive Discovery (Read In Order)
Instruction Efficiency (For AGENTS.md Updates)
- Keep Section 0 short and mandatory-only; move situational detail to later sections.
- Use one rule per line: trigger + action + stop condition when possible.
- Prefer explicit keywords for high-priority rules: MUST, NEVER, ASK FIRST.
- Use emphasis sparingly; over-highlighting reduces salience.
- Avoid restating model capabilities; only include constraints that change behavior.
- Prefer links to external standards instead of copying long guidance text.
- Keep examples minimal and only where ambiguity is likely.
- Remove duplicated or stale directives during each AGENTS.md update.
- Keep "Always Apply" stable; put fast-changing guidance in scoped sections.
- Optimize for lowest-capability models: simple wording, short bullets, deterministic instructions.
0) Always Apply (Minimal Core)
- Be accurate, not agreeable.
- Push back on unsafe, incorrect, or non-compliant requests.
- Ask clarifying questions for ambiguous or risky changes.
- Never apologize for refusing unsafe actions.
- Prefer minimal, reversible changes.
- Preserve existing architecture unless a change is explicitly requested.
- Clarify before irreversible actions such as force-push, history rewrite, mass delete, permission changes, or release publishing.
- Never claim commands, tests, or deployments succeeded unless verified.
- Do not change public APIs or externally observable behavior unless explicitly requested.
- Validate touched scope with the smallest relevant lint/type/test checks.
- If the same fix fails twice, stop and report root cause with next options.
- Never expose, request, or store secrets in model-visible channels.
- Keep CI/workflow/runtime permissions at least privilege.
- Always pin GitHub Actions to full commit SHAs; never use mutable tag-only refs (for example v4) in workflows or composite actions.
- Prefer explicit failure with actionable errors over silent fallbacks.
- State material assumptions before acting.
1) Apply When Writing/Changing Code
- Keep naming consistent for semantically identical constructs.
- Follow Microsoft TypeScript style guidance.
- For Bash, require shellcheck-clean scripts and
set -euo pipefail. - Document exported types/functions and add context where behavior is not obvious.
- Use consistent library patterns already present in the repo (
semantic-release,vitest, etc.).
2) Apply When Writing Tests
- Test naming format:
<method> <conditions> <expected>. - Test behavior, not implementation details.
- Keep setup focused on the tested condition.
- Use constants where exact values do not matter.
- Use parameterized tests/helpers for repeated patterns.
- Do not add logic (if/else/loops) in test bodies.
- If a fix fails twice, stop and explain root cause before continuing.
3) Apply When Working On CI/CD
- Follow: https://github.com/github/awesome-copilot/blob/main/instructions/github-actions-ci-cd-best-practices.instructions.md
- Abstract repeated workflow logic into reusable actions/scripts.
- Treat
mainas production release (no known bugs). - Treat
stagingas experimental/integration branch. - Use least privilege permissions and avoid unnecessary token scopes.
4) Apply For File/Script Placement
- Use
dev_scripts/for development tooling and CI-support utilities. - Use
scripts/for packaging/release processes.
Operational Guardrails
Always Do
- Run lint/type/test checks relevant to touched files before finalizing.
- Warn clearly about potential backward compatibility impact.
- Confirm with user before introducing breaking changes.
Ask First
- Changing branch protection or release governance.
- Adding dependencies or changing major dependency versions.
- Modifying security-sensitive CI permissions/policies.
Never Do
- Commit secrets, credentials, or
.envfiles. - Duplicate workflow logic when reusable abstraction is possible.
- Modify
node_modules/orvendor/. - Push directly to
main.
Quick Commands (Use As Needed)
# Lint / Type
npx eslint . --fix
shellcheck **/*.sh
npx tsc --noEmit
# Tests
npx vitest run
npx vitest run -t "pattern"
# Repo conventions
./dev_scripts/setup.sh
./scripts/release.sh