From 4b3a7aeb6f8883d2ca5b4d6b4434b22005e16b31 Mon Sep 17 00:00:00 2001 From: roottool Date: Fri, 6 Mar 2026 01:41:07 +0900 Subject: [PATCH 1/2] fix(docs): correct inaccuracies in README and boundary-validator references - README: use bracket notation for index signature access in Quick Start example (result.data["username"] instead of result.data.username) - design-rules, validation-patterns: fix Set to Set in correct patterns; FormData keys are always strings per spec - api-contract: update versioning policy to reflect actual 0.x practice; 0.minor bumps are treated as effectively major (breaking changes allowed) --- README.md | 4 ++-- skills/boundary-validator/references/api-contract.md | 2 +- skills/boundary-validator/references/design-rules.md | 2 +- skills/boundary-validator/references/validation-patterns.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4e93862..bcb16be 100644 --- a/README.md +++ b/README.md @@ -186,8 +186,8 @@ const result = parse(formData); if (result.data !== null) { // Success: data is available - console.log(result.data.username); // 'alice' - console.log(result.data.age); // '25' + console.log(result.data["username"]); // 'alice' + console.log(result.data["age"]); // '25' } else { // Failure: validation issues occurred console.error(result.issues); diff --git a/skills/boundary-validator/references/api-contract.md b/skills/boundary-validator/references/api-contract.md index 2f76ca7..7a0996f 100644 --- a/skills/boundary-validator/references/api-contract.md +++ b/skills/boundary-validator/references/api-contract.md @@ -243,7 +243,7 @@ For complete versioning policy, see README.md Versioning section. ### Key Points - **Patch versions** (0.1.x): bugfixes, no API changes -- **Minor versions** (0.x.0): Non-breaking additions (with caution in 0.x) +- **Minor versions** (0.x.0): Breaking changes allowed in 0.x (treated as effectively major) - **Major versions** (1.0.0+): Breaking changes allowed ### What Counts as Breaking diff --git a/skills/boundary-validator/references/design-rules.md b/skills/boundary-validator/references/design-rules.md index e4b6237..2544858 100644 --- a/skills/boundary-validator/references/design-rules.md +++ b/skills/boundary-validator/references/design-rules.md @@ -84,7 +84,7 @@ Object.assign(data, { [key]: value }); ```typescript // Detect and report duplicates -const seen = new Set(); +const seen = new Set(); for (const [key, value] of formData.entries()) { if (seen.has(key)) { diff --git a/skills/boundary-validator/references/validation-patterns.md b/skills/boundary-validator/references/validation-patterns.md index 0a4ca74..9f424d8 100644 --- a/skills/boundary-validator/references/validation-patterns.md +++ b/skills/boundary-validator/references/validation-patterns.md @@ -131,7 +131,7 @@ data[key] = value; // Always overwrites ```typescript // ✅ Correct: Detect and report duplicates -const seen = new Set(); +const seen = new Set(); for (const [key, value] of formData.entries()) { if (seen.has(key)) { From 23999749132d15576c2061b5f2eab6162faee050 Mon Sep 17 00:00:00 2001 From: roottool Date: Fri, 6 Mar 2026 01:50:35 +0900 Subject: [PATCH 2/2] fix(docs): align boundary-validator references with implementation - security-rules: use ReadonlySet + .has() instead of array + .includes() to match actual FORBIDDEN_KEYS implementation - design-rules, validation-patterns, security-rules: update Last updated dates --- skills/boundary-validator/references/design-rules.md | 2 +- skills/boundary-validator/references/security-rules.md | 6 +++--- skills/boundary-validator/references/validation-patterns.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/skills/boundary-validator/references/design-rules.md b/skills/boundary-validator/references/design-rules.md index 2544858..6574b7b 100644 --- a/skills/boundary-validator/references/design-rules.md +++ b/skills/boundary-validator/references/design-rules.md @@ -248,4 +248,4 @@ When in doubt, reject the change. --- **Source**: AGENTS.md (lines 36-75) -**Last updated**: 2026-01-12 +**Last updated**: 2026-03-06 diff --git a/skills/boundary-validator/references/security-rules.md b/skills/boundary-validator/references/security-rules.md index dd9dd92..77cc99c 100644 --- a/skills/boundary-validator/references/security-rules.md +++ b/skills/boundary-validator/references/security-rules.md @@ -40,11 +40,11 @@ for (const [key, value] of formData.entries()) { **✅ Correct**: ```typescript -const FORBIDDEN_KEYS = ["__proto__", "constructor", "prototype"] as const; +const FORBIDDEN_KEYS: ReadonlySet = new Set(["__proto__", "constructor", "prototype"]); for (const [key, value] of formData.entries()) { // Check for forbidden keys - if (FORBIDDEN_KEYS.includes(key as any)) { + if (FORBIDDEN_KEYS.has(key)) { issues.push({ code: "forbidden_key", key, @@ -191,4 +191,4 @@ When implementing or reviewing security-related code: --- **Source**: AGENTS.md (lines 76-95) -**Last updated**: 2026-01-12 +**Last updated**: 2026-03-06 diff --git a/skills/boundary-validator/references/validation-patterns.md b/skills/boundary-validator/references/validation-patterns.md index 9f424d8..6687b05 100644 --- a/skills/boundary-validator/references/validation-patterns.md +++ b/skills/boundary-validator/references/validation-patterns.md @@ -442,4 +442,4 @@ grep -r "ParseOptions" src/ --- -**Last updated**: 2026-01-12 +**Last updated**: 2026-03-06