# Design System Contribution Pack

Use this when a product team needs to add, extend, or bypass a design-system pattern without creating drift.

## 1. Contribution Brief

```md
Pattern:
Requester:
Product surface:
User problem:
Current workaround:
Why existing components fail:
Required states:
Known constraints:
Deadline or release pressure:
```

## 2. Drift Diagnosis

- [ ] Is the local workaround solving a missing primitive?
- [ ] Is the current component too specific?
- [ ] Is documentation unclear or hard to find?
- [ ] Is the contribution path slower than product work can tolerate?
- [ ] Is the proposed variation a one-off or a reusable behavior?
- [ ] Does the request reveal a naming or token gap?

## 3. Pattern Acceptance

A system change is ready when:

- The product job is named.
- Default, hover, focus, active, loading, disabled, invalid, and empty states are considered.
- Keyboard behavior is documented for interactive patterns.
- Mobile and dense-layout constraints are tested.
- Component API is smaller than the number of use cases it supports.
- Usage guidance includes when not to use the pattern.

## 4. Escape Hatch Rules

Use an escape hatch when product work cannot wait for a full system contribution.

- Name the owner.
- Add an expiration or review date.
- Document the exact variant.
- Keep the implementation local.
- File the system gap with evidence.
- Remove or promote the hatch after the product ships.

## 5. Component Docs Template

```md
# Component Name

## Use when
## Do not use when
## Anatomy
## States
## Content rules
## Accessibility behavior
## Responsive behavior
## Examples
## Known product constraints
## Contribution notes
```
