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..6574b7b 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)) { @@ -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 0a4ca74..6687b05 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)) { @@ -442,4 +442,4 @@ grep -r "ParseOptions" src/ --- -**Last updated**: 2026-01-12 +**Last updated**: 2026-03-06