The complete threshold matrix, two-gate verification, boundary cases, and custom audience overrides — with full pseudocode
Every combination of audience and level has an exact threshold. If a topic's Helpfulness Score (HS) falls below this value, the topic does not get its own page at that level — instead it is rendered as an expanded paragraph or collapsible on the parent page.
Complete Threshold Matrix
| Audience | max_level | L1 (own module) | L2 (own page) | L3 (deep-dive) |
|---|---|---|---|---|
| 🔧 Developers | L3 | HS ≥ 6 | HS ≥ 8 | HS ≥ 8 |
| 👤 Users | L2 | HS ≥ 7 | HS ≥ 9 | — (no L3) |
| 📊 Executives | L1 | HS ≥ 8 | — (no L2) | — (no L3) |
The threshold check happens in two gates. Both must pass before a page is planned — and additionally, the next level must be within the audience's maximum depth.
Gate 1 — "Own page?": For each level, check if the HS meets the threshold for an own page. If not, the topic is shown as a paragraph on the parent page instead. All deeper levels are skipped.
Gate 2 — "Go deeper?": If Gate 1 passes, check if the HS also meets the next level's threshold AND if the next level is within the audience's maximum depth. Both conditions must be met.
Stop reason: Documents why no deeper planning occurred. Three reasons: audience maximum reached, score below next threshold, or topic complexity exhausted.
Example: Topic "API Design", HS=8
| Audience | Gate 1 (L1) | Gate 2 (L2) | Gate 2 (L3) | Result |
|---|---|---|---|---|
| 🔧 Developers | 8 ≥ 6 ✓ | 8 ≥ 8 ✓ | 8 ≥ 8 ✓ | L0, L1, L2, L3 |
| 👤 Users | 8 ≥ 7 ✓ | 8 < 9 ✗ | — | L0, L1 (Stop: HS below L2) |
| 📊 Executives | 8 ≥ 8 ✓ | — (max L1) | — | L0, L1 (Stop: audience max) |
| Boundary Case | Rule | Example |
|---|---|---|
| HS exactly at threshold | Included (≥, not >) | HS=8, threshold=8 → own page |
| HS = 10 (maximum) | Always own page + deeper content (within audience max) | HS=10 for Executives → L0 + L1 only (max=L1) |
| HS = 1–2 | Brief mention only. Below every L1 threshold. | HS=2 for Developers → L0 mention only |
| HS = 0 | Not mentioned. Topic completely skipped. | HS=0 → invisible for this audience |
| Multiple topics same HS | Sort: 1. Relevance sub-score (desc), 2. Alphabetically | Topic A (HS=8, Rel=0.9) before Topic B (HS=8, Rel=0.7) |
| More than 10 topics per level | Top 10 by HS. Remainder as paragraphs on parent. | 15 topics with HS ≥ 6 on L1 → top 10 as modules |
| Tie at 10th position | Include all with same HS. May yield 11–12 topics. | Topics 9, 10, 11 all HS=7 → all three included |
For 🏷️ custom audiences, User profile defaults apply. The user can override these with explicit syntax.
| Property | Default | Source |
|---|---|---|
| max_level | 2 | User profile |
| L1 threshold | 7 | User profile |
| L2 threshold | 9 | User profile |
Override mechanism: Every custom audience starts with User defaults (max_level=2, L1=7, L2=9). Users can override max_level, set a blanket threshold for all levels, or provide level-specific values. Without any overrides, the custom audience behaves exactly like the standard User audience.
A topic has HS=8 for 👤 Users. It is on L1. Should the skill plan an L2 page?