You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .cursorrules
+30-30Lines changed: 30 additions & 30 deletions
Original file line number
Diff line number
Diff line change
@@ -2,12 +2,12 @@
2
2
3
3
## 1. Quick-Start Checklist
4
4
5
-
- We’ve created ./typf-tester/typfme.py that uses a test font and into @./typf-tester/ folder it’s supposed to output a renderings using ALL shaping and render backends, as both PNG and SVG.
5
+
- We’ve created ./typf-tester/typfme.py that uses a test font and into @./typf-tester/ folder it’s supposed to output a renderings using ALL shaping and render backends, as both PNG and SVG.
6
6
- Make sure that 'typfme.py' supports ALL shaping and render backends. Make sure the Python bindings support ALL shaping and render background. Make sure that the Rust CLI supports ALL shaping and render backends.
7
-
- The typefme.py tool should also perform benchmarking of all backend combos across many sample texts and font sizes and produce a nice JSON report and an extremely compact Markdown table into the @./typf-tester/ folder.
8
-
- Use the 'typfme.py' tool and inspect the outputs to debug and improve the shaping and rendering of all backgrounds. Work in a continuous feedback loop.
7
+
- The typefme.py tool should also perform benchmarking of all backend combos across many sample texts and font sizes and produce a nice JSON report and an extremely compact Markdown table into the @./typf-tester/ folder.
8
+
- Use the 'typfme.py' tool and inspect the outputs to debug and improve the shaping and rendering of all backgrounds. Work in a continuous feedback loop.
9
9
- You must actually RUN ./build.sh (which at the end runs ./typfme.py) to verify that the changes you make are working
10
-
- Inspect the JSONs, PNGs and SVGs in @./typf-tester/output/ folder to debug & improve. Look at bitmaps AND vectors and JSON data, not just one of them.
10
+
- Inspect the JSONs, PNGs and SVGs in @./typf-tester/output/ folder to debug & improve. Look at bitmaps AND vectors and JSON data, not just one of them.
11
11
- A common problem with shaping and rendering may be size (scale) mismatch, or that the rendering may be upside down (coordinate system mismatch).
12
12
13
13
**For every task, follow this baseline:**
@@ -26,10 +26,10 @@
26
26
## 2. Normative Language Convention
27
27
28
28
- **MUST** – Hard requirements, no exceptions
29
-
- **SHOULD** – Default behavior; deviate only with clear justification
29
+
- **SHOULD** – Default behavior; deviate only with clear justification
30
30
- **MAY** – Optional practices or suggestions
31
31
32
-
## 3. TypF Workspace Snapshot (Rust + Python)
32
+
## 3. Typf Workspace Snapshot (Rust + Python)
33
33
34
34
**Scope Sentence**: Deliver a six-stage, dual-backend text pipeline with selective builds and first-class PyO3 bindings.
35
35
@@ -91,7 +91,7 @@ Before ANY response, apply this three-phase thinking:
@@ -537,7 +537,7 @@ When implementing TypF, reference the old-typf codebase strategically:
537
537
4. **Memory Management**: Box::leak() for font data caching (intentional, documented)
538
538
5. **Concurrency**: Arc<T> + DashMap for thread-safe sharing; parking_lot for locks
539
539
540
-
### 13.3. Old-TypF Dependencies Already in Use
540
+
### 13.3. Old-Typf Dependencies Already in Use
541
541
542
542
All required dependencies are already proven in old-typf:
543
543
- `read-fonts` + `skrifa` for font parsing (NOT ttf-parser)
@@ -566,7 +566,7 @@ For each stage (PLAN/01-06):
566
566
567
567
---
568
568
569
-
## 14. X. RUST IMPLEMENTATION MANDATES (TypF V2)
569
+
## 14. X. RUST IMPLEMENTATION MANDATES (Typf V2)
570
570
571
571
- **Workspace Discipline (MUST)**: Keep the multi-crate layout from `/Users/adam/Developer/llm/2511/typf-v2b` intact—`typf`, `typf-core`, `typf-input`, `typf-unicode`, `typf-fontdb`, `typf-export`, per-backend crates, bindings, and `typf-cli`. Never collapse crates “for convenience”; feature gating depends on this split.
572
572
- **Six-Stage Pipeline Fidelity (MUST)**: Preserve the pipeline contracts defined in PLAN/00–04: Input → Unicode → Font Selection → Shaping → Rendering → Export. Every new feature must declare which stage it touches and add targeted tests (unit + integration) before code changes.
@@ -603,18 +603,18 @@ For each stage (PLAN/01-06):
603
603
604
604
## 17. Detailed plan reference
605
605
606
-
- [ ] @./0PLAN.md
607
-
- [ ] @./PLAN/00.md
608
-
- [ ] ./PLAN/01.md
609
-
- [ ] ./PLAN/02.md
610
-
- [ ] ./PLAN/03.md
611
-
- [ ] ./PLAN/04.md
612
-
- [ ] ./PLAN/05.md
613
-
- [ ] ./PLAN/06.md
614
-
- [ ] ./PLAN/07.md
615
-
- [ ] ./PLAN/08.md
616
-
- [ ] ./PLAN/09.md
606
+
- [ ] @./0PLAN.md
607
+
- [ ] @./PLAN/00.md
608
+
- [ ] ./PLAN/01.md
609
+
- [ ] ./PLAN/02.md
610
+
- [ ] ./PLAN/03.md
611
+
- [ ] ./PLAN/04.md
612
+
- [ ] ./PLAN/05.md
613
+
- [ ] ./PLAN/06.md
614
+
- [ ] ./PLAN/07.md
615
+
- [ ] ./PLAN/08.md
616
+
- [ ] ./PLAN/09.md
617
617
618
618
- [ ] If you work on the 'opixa' backend (the pure-Rast monochrome/grayscale rasterizer), consult the reference implementation in @./external/rasterization_reference/ ('opixa' is the Rust port thereof)
619
619
- [ ] @./external/ contains source code snapshots for various Rust libraries of interest which we use
620
-
- [ ] @./old-typf/ contains the old implementation which we are refactoring into the current 'typf' v2
620
+
- [ ] @./old-typf/ contains the old implementation which we are refactoring into the current 'typf' v2
0 commit comments