29 lines
1.3 KiB
Markdown
29 lines
1.3 KiB
Markdown
# Pack: Facts
|
|
|
|
Use this pack for facts and constraints that must survive a rewrite. Do not judge style or phrase quality.
|
|
|
|
## Look For
|
|
|
|
- Constraints from `extract_constraints.py`: numbers, dates, times, names, URLs, emails, quoted text, code identifiers, currencies, percentages, units, ranges.
|
|
- Negations, conditionals, and scope words surfaced by preservation validation: "not", "unless", "except", "only", "must", "may", "can", "at least", "no more than".
|
|
- Approximation traps: "roughly 60%" is not "60%"; "Q2" is not "June"; "under 500 ms" is not "500 ms".
|
|
- Proper-noun and party relationships: Apple sued Qualcomm is not Qualcomm sued Apple.
|
|
- Technical literals: API names, flags, file paths, version numbers, protocol names.
|
|
|
|
## Emit
|
|
|
|
Return JSON findings only:
|
|
|
|
```json
|
|
{"span":"roughly 60%","rule":"approximate_quantity","pack":"pack-facts","severity":"hard","note":"Keep the approximation marker with the number."}
|
|
```
|
|
|
|
Use `hard` for exact facts, negations, scope, and quantities. Use `soft` for phrasing that appears factual but may be compressible.
|
|
|
|
## Examples
|
|
|
|
- "p99 latency fell to 180 ms on June 18" -> report p99, 180 ms, June 18.
|
|
- "roughly 60%" -> report the approximation and number together.
|
|
- "The team improved performance." -> no finding; style claim without a concrete constraint.
|
|
- "`--strict` failed on v2.1.0" -> report flag and version.
|