Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
fast-check patterns for JS/TS — 6 canonical property categories with worked examples targeting agent-studio utilities (path normalization, safe-json, glob-to-regex, routing logic)
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
fast-check patterns for JavaScript/TypeScript that find edge cases unit tests miss. Includes 6 canonical property categories with worked examples targeting agent-studio's own utilities.
import fc from 'fast-check';
// If you serialize then deserialize, you get back the original
fc.assert(
fc.property(fc.anything(), value => {
expect(deserialize(serialize(value))).toEqual(value);
})
);
// Applying a function twice gives same result as once
fc.assert(
fc.property(fc.string(), str => {
expect(normalize(normalize(str))).toEqual(normalize(str));
})
);
// Order of inputs shouldn't matter
fc.assert(
fc.property(fc.array(fc.integer()), arr => {
expect(sum(arr)).toEqual(sum([...arr].reverse()));
})
);
// Output always has certain structural properties
fc.assert(
fc.property(fc.string(), input => {
const result = parseArgs(input);
expect(result).toHaveProperty('args');
expect(Array.isArray(result.args)).toBe(true);
})
);
// Compare fast implementation against slow-but-correct reference
fc.assert(
fc.property(fc.array(fc.integer()), arr => {
expect(fastSort(arr)).toEqual(referenceSort(arr));
})
);
// If input changes in a known way, output changes in a predictable way
fc.assert(
fc.property(fc.array(fc.integer()), arr => {
const sorted = sort(arr);
const sortedWithExtra = sort([...arr, Number.MAX_SAFE_INTEGER]);
expect(sortedWithExtra[sortedWithExtra.length - 1]).toBe(Number.MAX_SAFE_INTEGER);
})
);
import fc from 'fast-check';
const { normalizePath } = require('.claude/lib/utils/path-constants.cjs');
// Property: normalized path never contains backslashes
fc.assert(
fc.property(fc.string(), path => {
expect(normalizePath(path)).not.toMatch(/\\/);
})
);
// Property: idempotent
fc.assert(
fc.property(fc.string(), path => {
expect(normalizePath(normalizePath(path))).toEqual(normalizePath(path));
})
);
const { safeParseJSON } = require('.claude/lib/utils/safe-json.cjs');
// Property: never throws, always returns { success, data }
fc.assert(
fc.property(fc.string(), input => {
const result = safeParseJSON(input, null);
expect(result).toHaveProperty('success');
expect(typeof result.success).toBe('boolean');
})
);
// Property: prototype pollution not possible
fc.assert(
fc.property(fc.string(), input => {
const before = Object.prototype.toString;
safeParseJSON(input, null);
expect(Object.prototype.toString).toBe(before);
})
);
// Property: patterns with **/dir/** match root-level dir
fc.assert(
fc.property(fc.constantFrom('foo', 'bar', 'baz'), dir => {
const pattern = `**/${dir}/**`;
const regex = globToRegex(pattern);
expect(`${dir}/file.js`).toMatch(regex); // root-level match
expect(`a/${dir}/file.js`).toMatch(regex); // nested match
})
);
// Property: routing is deterministic (same input -> same agent)
fc.assert(
fc.property(fc.string(), intent => {
expect(route(intent)).toEqual(route(intent));
})
);
// Property: routing never returns null/undefined
fc.assert(
fc.property(fc.string(), intent => {
expect(route(intent)).toBeTruthy();
})
);
pnpm add -D fast-check
# Run all property tests
node --test tests/**/*.property.test.cjs
# Run with verbose output (shows counterexamples on failure)
FAST_CHECK_VERBOSE=true node --test tests/**/*.property.test.cjs
fast-check automatically shrinks failing inputs to the minimal counterexample. Example:
"C:\\Users\\foo\\deep\\nested\\path""a\\b" (minimal backslash case)This makes debugging far faster than traditional fuzzing.
Before starting:
Read .claude/context/memory/learnings.md
After completing:
.claude/context/memory/learnings.md.claude/context/memory/issues.md.claude/context/memory/decisions.mdASSUME INTERRUPTION: If it's not in memory, it didn't happen.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when you want to improve response quality through meta-cognitive reasoning. Applies 15+ reasoning methods to reconsider and refine initial outputs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
N-round opposing-stance debates for trade-off analysis. Assigns pro/con roles to agents, runs structured debate rounds with quality scoring, and produces a moderator synthesis with confidence-rated recommendation. Generalizable to architecture, technology, security, and design decisions.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Force adversarial code review stance that eliminates confirmation bias — reviewer must find issues or re-analyze
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Creates specialized AI agents on-demand when no existing agent matches a request. Use when the Router cannot find a suitable agent for a task. Enables self-evolution by generating persistent agents.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
LLM-as-judge evaluation framework with 5-dimension rubric (accuracy, groundedness, coherence, completeness, helpfulness) for scoring AI-generated content quality with weighted composite scores and evidence citations
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.