Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/kyungseo/ai-workflow-harness/testinggit clone --depth 1 https://github.com/kyungseo/ai-workflow-harnessWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00565 |
| Opus 5 | $0.00000 | $0.00282 |
| Sonnet 5 | $0.00000 | $0.00113 |
| Haiku 4.5 | $0.00000 | $0.00056 |
Grade A, and why
testing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 62 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Optional Spring Boot Testing Rules
These rules are not part of the generic AI Workflow Harness core. They are kept as an optional example/profile surface for projects that adopt the harness with Spring Boot backend tests.
Test Layer Annotations
| Layer | Annotation | Context |
|---|---|---|
| Unit | @ExtendWith(MockitoExtension.class) + @MockitoSettings(strictness = Strictness.LENIENT) |
No Spring context |
| Controller slice | @WebMvcTest + @ActiveProfiles("test") |
Spring MVC only |
| MyBatis slice | @MybatisTest + @ActiveProfiles("test") |
MyBatis mapper only |
| Integration | @SpringBootTest + @AutoConfigureMockMvc + @ActiveProfiles("test") |
Full Spring context |
Integration Test Infrastructure
Prefer the adopted project's established integration-test infrastructure.
MUST:
- Keep integration-test environment settings in shared test configuration, not per-test ad hoc system properties.
- Reuse the established integration-test infrastructure pattern in existing service tests.
- Record infrastructure changes through the adopted project's decision process.
NEVER:
- Reintroduce local-only test overrides without an explicit decision.
- Depend on separately running local services for integration tests unless the adopted project documents that requirement.
Assertion and Mocking Style
MUST:
- Use AssertJ:
assertThat(...),assertThatThrownBy(...) - Prefer BDD style:
given(mock).willReturn(value)over Mockitowhen/thenReturn - Keep
@MockitoSettings(strictness = Strictness.LENIENT)— project standard; do not remove without reason.
NEVER:
- Use JUnit 5 raw assertions (
assertEquals,assertTrue) — replace with AssertJ - Use
@Dataon mock objects - Use
@Autowiredfield injection in test classes — use constructor injection if needed
Naming Conventions
- Method name:
methodName_scenario_expectedBehavior(English) @DisplayName: Korean display names are intentional. Do not translate existing display names to English.- Test class name:
{TargetClass}Test
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 62 lines · 0 tokens per session scan A 1221f1bf2f46
testing is a cursor rule published in the GitHub repository kyungseo/ai-workflow-harness (13 stars, last pushed 1mo ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 565 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other cursor rules, from other repositories
language-agnostic-patterns
Language-agnostic programming patterns: SOLID, design patterns, clean code, and architecture. Load when refactoring, designing abstractions, or reviewing structure — not for everyday syntax.
cursor-tools-mastery
Cursor 3.7 runtime guide: choose the right tool, canvases, Design Mode, /worktree, /best-of-n, Await, and parallel execution where safe.
fable5-coding-craft
Fable 5 coding craft: locate-before-write, root-cause method, simplicity taste, error-handling philosophy, test integrity, refactoring discipline, and counters to common LLM coding failure modes. Load when writing, refactoring, debugging, or reviewing non-trivial code in any language.
cursor-agent-orchestration
Cursor 3.7 orchestration guide: when to plan, when to delegate, nested subagents, multi-environment handoffs, /best-of-n, and Await for long-running branches.
fable5-reasoning
Fable 5 reasoning protocols: task interpretation, risk-first decomposition, approach selection, interleaved thinking, hypothesis ledgers, premortems, calibration, and the stuck-strategy ladder. Load for complex, ambiguous, or long-horizon tasks, for debugging strategy, or whenever progress stalls.
cursor-mcp-optimization
Cursor 3.7 MCP optimization: browser Design Mode, canvases, Figma, Cloudflare tools, MCP Apps structured content, and direct action patterns.