|
2 | 2 |
|
3 | 3 | <!-- What does this PR change? Keep it concise. --> |
4 | 4 |
|
5 | | -## Boundary Checklist (Required) |
| 5 | +## Type of Change |
| 6 | + |
| 7 | +- [ ] Bug fix (non-breaking change fixing an issue) |
| 8 | +- [ ] Security fix (non-breaking change addressing a security issue) |
| 9 | +- [ ] Documentation (changes to documentation only) |
| 10 | +- [ ] Refactoring (non-breaking change improving code structure) |
| 11 | +- [ ] Tests (adding or updating tests) |
| 12 | +- [ ] Tooling / CI (changes to build tools, CI configuration) |
| 13 | + |
| 14 | +## Boundary Checklist (Required for Implementation Changes) |
6 | 15 |
|
7 | 16 | > safe-formdata enforces a **strict trust boundary** for FormData. |
8 | 17 | > If any item below does **not** apply, this change likely does not belong here. |
| 18 | +> |
| 19 | +> **For documentation, tooling, or CI changes**: You may skip this section by checking the box below and explaining why. |
| 20 | +
|
| 21 | +- [ ] **This is a non-implementation change** (Documentation, Tooling, or CI only) |
| 22 | + - Reason: <!-- Explain why boundary checklist doesn't apply --> |
| 23 | + |
| 24 | +**For implementation changes, verify all items below:** |
9 | 25 |
|
10 | 26 | - [ ] **No interpretation** |
11 | 27 | - Key names are treated as opaque strings |
|
16 | 32 | - [ ] **Boundary respected** |
17 | 33 | - No validation, coercion, schema, framework conventions, or business logic |
18 | 34 |
|
19 | | -📘 Boundary rules & non-goals: |
| 35 | +📘 Boundary rules & non-goals: |
20 | 36 | <https://github.com/roottool/safe-formdata/blob/main/AGENTS.md> |
21 | 37 |
|
22 | | -## Type of Change |
| 38 | +## Security & API Stability |
| 39 | + |
| 40 | +**Security Impact:** |
| 41 | + |
| 42 | +- [ ] No impact on security (no changes to forbidden keys, prototype safety) |
| 43 | +- [ ] Reviewed against security rules in AGENTS.md |
| 44 | +- [ ] If security-related: Explain impact and mitigation |
| 45 | + |
| 46 | +**API Contract:** |
23 | 47 |
|
24 | | -- [ ] Bug fix |
25 | | -- [ ] Security fix |
26 | | -- [ ] Documentation |
27 | | -- [ ] Refactoring (no behavior change) |
28 | | -- [ ] Tests |
29 | | -- [ ] Tooling / CI |
| 48 | +- [ ] No changes to public API (`parse` function signature, type definitions) |
| 49 | +- [ ] No breaking changes to `ParseResult`, `ParseIssue`, or `IssueCode` |
| 50 | +- [ ] If API change: Is this a breaking change? (Yes/No + explanation) |
| 51 | + |
| 52 | +**Versioning:** |
| 53 | + |
| 54 | +- [ ] Change is compatible with current v0.x versioning policy |
| 55 | +- [ ] If breaking change proposed: Justification for major version bump |
30 | 56 |
|
31 | 57 | ## Testing |
32 | 58 |
|
33 | | -<!-- Describe tests added or updated. If none, explain why. --> |
| 59 | +**Automated Checks:** |
| 60 | + |
| 61 | +- [ ] TypeScript type checking passes (`bun run check:type:source`) |
| 62 | +- [ ] All tests pass (`bun run test`) |
| 63 | +- [ ] Build succeeds (`bun run build`) |
| 64 | + |
| 65 | +**Additional Verification** (describe any manual testing, edge case verification, or integration testing): |
| 66 | + |
| 67 | +<!-- Describe tests added, updated, or manual verification performed. If none, explain why. --> |
| 68 | + |
| 69 | +## Automated Review (Optional) |
| 70 | + |
| 71 | +**For Claude Code users**: You can use the boundary-validator skill for automated review: |
| 72 | + |
| 73 | +``` |
| 74 | +Review this code against boundary-validator rules |
| 75 | +``` |
| 76 | + |
| 77 | +**For other tools**: Reference [AGENTS.md](https://github.com/roottool/safe-formdata/blob/main/AGENTS.md) and [skills/boundary-validator](https://github.com/roottool/safe-formdata/tree/main/skills/boundary-validator) for design rules. |
0 commit comments