- Introduction
- Pitch
- Hogwarts
- Live Demo
- MVP
- Roadmap
- Launch Sprint
- PRD
- Get Started
- Localhost
- Architecture
- Structure
- Pattern
- Page
- Layout
- Content
- Types
- Config
- Actions
- Queries
- Authorization
- Validation
- Form
- Table
- Detail
- Card
- Util
- Hooks
- List Params
- Views
- README.md
- ISSUE.md
- Technology Stack
- Database
- File
- CDN Assets
- Entry Points
- Dashboard
- Authentication
- Credentials
- OAuth
- Flow Diagrams
- Multi-Tenancy
- Offline
- Onboarding
- Onboarding Videos
- Add Values
- Admission
- Application
- Attendance
- Compliance
- Profile
- Exams
- Exam Wizard
- Timetable
- Classrooms
- Notifications
- Conference
- LMS (Lumos)
Finance
- Finance
- Fee Management
- Invoice
- Wallet
- Salary
- Payroll
- Timesheet
- Expenses
- Budget
- Receipt
- Accounts
- Banking
- Reports
- Dashboard
- Permissions
- Messages
- Integration Flow
- Provision
- AI Document Processing
- Document Intelligence
- Internationalization
- Translation
- Translation Guide
- Icons
- Docs Factory
- Inspiration
- Listings
- Teachers
- Students
- Catalog
- Library
- Contributing
- Code of conduct
- GitHub Workflow
- Database Seeds
- Database Safety
- Test Accounts
- Playwright
- Prettier
- Block Rebound
Sales & GTM
ISSUE.md lives in feature directories alongside README.md. One row per issue, separate Active / Completed / Debt sections, ~40 lines max. Self-updating: move rows to Completed on fix, add rows on bug discovery.
Rules
| # | Rule |
|---|---|
| 1 | One row per issue — no prose, no bullet lists |
| 2 | Max 40 lines — archive completed issues aggressively |
| 3 | Priority labels: P0 (blocking), P1 (next sprint), P2 (backlog), P3 (nice-to-have) |
| 4 | Auto-update — move fixed rows to Completed with a date |
| 5 | Separate Debt section for tech debt, perf, a11y, test gaps |
| 6 | No duplicate tracking — link to GitHub Issues, don't copy descriptions |
Canonical template
# <Feature> — Issues
## Active
| ID | P | Title | Status | Owner |
| --- | --- | ------------------------------- | ----------- | ----- |
| 1 | P0 | Missing schoolId in bulk delete | Open | — |
| 2 | P1 | Form resets on validation error | In Progress | @dev |
| 3 | P2 | Add bulk export | Open | — |
## Completed
| ID | P | Title | Resolved |
| --- | --- | ------------------- | ---------- |
| 0 | P0 | SSE on table render | 2026-02-15 |
## Debt
| Area | Issue | Severity |
| ---- | ----------------------------------- | -------- |
| Test | No integration tests for actions.ts | Medium |
| A11y | Missing aria-labels on buttons | Low |
| Perf | N+1 query in content.tsx | High |Linking GitHub Issues
When the same issue exists in GitHub, link instead of duplicating:
| 5 | P0 | Auth callback fails on redirect | Open | [#142](https://github.com/databayt/hogwarts/issues/142) |Priority labels
| Label | Meaning |
|---|---|
| P0 | Blocking — fix immediately |
| P1 | Next sprint |
| P2 | Backlog |
| P3 | Nice-to-have |
Anti-patterns
- Prose descriptions — use a descriptive title in the table row.
- Mixing feature issues with tech debt — separate Active and Debt sections.
- ISSUE.md over 40 lines — archive completed items, keep the last 5.
- Stale issues fixed in code but never marked completed.
- Duplicating GitHub Issue content — link instead.
What belongs where
| Content | In | Not in |
|---|---|---|
| Bugs, feature requests | ISSUE.md Active | README.md |
| Resolved issues (last 5) | ISSUE.md Completed | README.md |
| Tech debt, perf, a11y | ISSUE.md Debt | Active section |
| Cross-feature bugs | GitHub Issues | local ISSUE.md |
| Architecture decisions | README.md | ISSUE.md |