agentleFS
AgentShekelAgentShekel/agentic-workflow/skills/pre-deploy-qa/SKILL.md

pre-deploy-qa

Skill4 starsChanged 29 days agoMITView on GitHub

[METHODOLOGY] Pre-deploy acceptance testing (run test suite — unit/integration/E2E, verify acceptance criteria from user-spec and tech-spec, no live environment needed). Preloaded by pre-deploy-qa agent.

1 other project uses a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 6 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If user-spec or tech-spec missing — request before proceeding.

    line 20
  2. Distinctive:

    Run all tests (unit, integration, E2E).

    line 28
  3. Distinctive:

    Run full test suite

    line 31
  4. Distinctive:

    Check every criterion from user-spec and tech-spec:

    line 36
  5. Distinctive:

    After test suite passes, verify that tests actually exercise the feature:

    line 46
  6. Very specific:

    If project has coverage tooling configured (jest --coverage, pytest --cov, vitest --coverage) — run it.

    line 49
  7. Very specific:

    Write a brief entry to decisions.md following the template (~/.claude/shared/work-templates/decisions.md.template).

    line 104
  8. Distinctive:

    Every finding includes concrete reproduction: steps, expected vs actual.

    line 123
  9. Very specific:

    If any acceptance criteria are marked not_verifiable — add a deferredToPostDeploy section to the JSON report.

    line 129

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Pre-deploy QA

Input Requirements

Read before starting:

  • user-spec.md — acceptance criteria
  • tech-spec.md — technical acceptance criteria
  • decisions.md — deviations from plan (if exists)
  • Project Knowledge — architecture.md, patterns.md (incl. Testing & Git Workflow sections)

If user-spec or tech-spec missing — request before proceeding.

Verification Directions

Three verification directions (order doesn't matter):

Test Suite

Run all tests (unit, integration, E2E). All must pass.

  • Identify test runner from project config (package.json, pyproject.toml, Makefile, etc.)
  • Run full test suite
  • Record: total tests, passed, failed, skipped

Acceptance Criteria

Check every criterion from user-spec and tech-spec:

  • passed — criterion met, evidence provided
  • failed — the feature exists but does not meet the criterion
  • not_verifiable — cannot be checked without live environment, external service, or MCP tool (scope of post-deploy-qa)

For each criterion — provide evidence (test name, code path, log output).

Coverage Verification

After test suite passes, verify that tests actually exercise the feature:

  • For each file in the feature's scope (from tech-spec "Files to modify"): verify a corresponding test exists. Feature code without any test → severity critical
  • If project has coverage tooling configured (jest --coverage, pytest --cov, vitest --coverage) — run it. Coverage of feature files dropping below project threshold → severity critical
  • For each acceptance criterion with status passed — verify the linked test actually exercises the relevant code path, not just an import check or mock-only test. Test that doesn't actually test the feature behavior → severity major
  • Edge cases mentioned in user-spec (error handling, boundary values, empty states) — verify they have corresponding tests. Missing edge case test for M/L features → severity major

Severity Classification

  • critical — acceptance criterion failed, tests fail, core functionality broken
  • major — works but with significant issues (edge cases, UX bugs, degraded behavior). Escalate to critical if it affects data integrity or core user workflow.
  • minor — cosmetic, inaccuracies, improvements

Output

JSON report → logs/working/qa-report.json

Full report saved to file. Reason: orchestrator parses this to decide pass/fail.

{
  "status": "passed | failed",
  "summary": {
    "totalChecks": 0,
    "passed": 0,
    "failed": 0,
    "notVerifiable": 0,
    "criticals": 0,
    "majors": 0,
    "minors": 0
  },
  "testSuite": {
    "status": "passed | failed",
    "details": "All 42 tests passed"
  },
  "acceptanceCriteria": [
    {
      "criterion": "User can login with email",
      "status": "passed | failed | not_verifiable",
      "evidence": "Test login_test.py::test_email_login passes"
    }
  ],
  "findings": [
    {
      "severity": "critical | major | minor",
      "title": "Login fails for emails with + sign",
      "expected": "Login succeeds",
      "actual": "400 Bad Request",
      "reproduction": "Steps to reproduce..."
    }
  ]
}

Status decision: passed if zero criticals, failed if one or more criticals.

decisions.md entry — concise summary only

Write a brief entry to decisions.md following the template (~/.claude/shared/work-templates/decisions.md.template). Link to logs/working/qa-report.json for the full report.

Example:

## Task 9: Pre-deploy QA

**Status:** Done
**Agent:** qa-runner
**Summary:** QA passed. 391 tests green, 28 acceptance criteria checked (25 passed, 3 not_verifiable). No blockers.
**Deviations:** Нет.

**Verification:**
- Full report: [logs/working/qa-report.json]

Guidelines

  • Work from specs only (user-spec, tech-spec, decisions.md). Task files (tasks/*.md) are already verified by reviewers and are outside QA scope.
  • Account for decisions.md — deviations from original plan may be justified.
  • Every finding includes concrete reproduction: steps, expected vs actual.
  • Criteria requiring live environment or MCP tools — mark as not_verifiable, note that post-deploy verification is needed.
  • Empty findings array = clean audit.

Deferred to Post-deploy

If any acceptance criteria are marked not_verifiable — add a deferredToPostDeploy section to the JSON report. This section is the handoff contract: post-deploy QA reads it and verifies each deferred criterion on live environment.

For each deferred criterion, specify:

  • Which criterion (ID and text)
  • Why it cannot be verified pre-deploy
  • What conditions are needed to verify it (live data, MCP tool, user action)
  • Concrete verification steps for post-deploy agent

Example in JSON report:

"deferredToPostDeploy": [
  {
    "criterion": "US-5: Titles generated with correct declensions",
    "reason": "Requires live LLM call with real data",
    "verificationCondition": "New survey entry processed after deploy",
    "verificationSteps": "Run a survey entry through the bot, check generated title for grammar and naturalness"
  }
]

Also mention deferred criteria in the decisions.md entry:

**Deferred to post-deploy:** 3 criteria require live verification (US-5, US-8, US-10). See deferredToPostDeploy in qa-report.json.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.