Spaces:
Sleeping
Sleeping
|
Download docs/ai-working-rules.md from ccjulia/zero_friction: direct link, hf CLI and curl.
- Browser
- Download file 3.41 kB
-
https://huggingface.co/spaces/ccjulia/zero_friction/resolve/main/docs/ai-working-rules.md
- Command line
-
hf download hf://spaces/ccjulia/zero_friction/docs/ai-working-rules.md
-
curl -L -o ai-working-rules.md https://huggingface.co/spaces/ccjulia/zero_friction/resolve/main/docs/ai-working-rules.md
3.41 kB
AI Working Rules β PulseFabric Monitor
This document defines the rules and conventions that AI assistants (GitHub Copilot, agents, etc.) must follow when working on this project.
Feature Implementation Order
All features must be implemented in this strict sequence:
- db.json β Add or update data in
backend/db.json - Typed model β Add or update the DTO interface in
frontend/src/app/core/models/api.models.ts - Service β Add a method to
frontend/src/app/core/services/dashboard-api.service.ts - UI β Build or extend the component, consuming data via the service
Never skip steps. Never put data fetching logic directly in a component.
20 Production Code Rules
| # | Rule | Summary |
|---|---|---|
| 1 | Separation of Concerns | TS, HTML, SCSS in separate files |
| 2 | No Hardcoded Data | All data from API or mock files |
| 3 | Typed Interfaces | Every data structure has a TS interface; any is forbidden |
| 4 | Component-Driven | Reusable standalone Angular components |
| 5 | No Magic Numbers | Named constants, enums, or config objects only |
| 6 | CSS Token System | Use --mat-sys-*, --pf-*, or SCSS variables |
| 7 | Material 3 Compliance | Follow M3 guidelines for all UI |
| 8 | Concise Angular | Signals, input(), inject(), pipes, directives |
| 9 | No Over-Engineering | No unnecessary libraries or infrastructure |
| 10 | Reuse Before Creating | Audit existing code first |
| 11 | Generic Component Design | Input-driven; new instance = new inputs, not new file |
| 12 | Minimal Change Principle | >3 files changed β stop and explain |
| 13 | Flat HTML Structure | No unnecessary DOM wrappers |
| 14 | No console.log | Remove all logging before committing |
| 15 | No Dead Code | No commented-out blocks |
| 16 | Clean Imports | Every import must be used |
| 17 | Consistent Naming | kebab-case files, camelCase vars, PascalCase classes |
| 18 | Single Responsibility | One component/service/model group per file |
| 19 | No any (Reinforced) |
Forbidden in all positions |
| 20 | SCSS Nesting β€ 3 Levels | Refactor into separate classes if exceeded |
Governance Files
| File | Purpose |
|---|---|
.github/copilot-instructions.md |
Full rule set loaded into every Copilot session |
.github/prompts/add-kpi-widget.prompt.md |
Step-by-step prompt for adding a KPI card |
.github/prompts/add-chart-widget.prompt.md |
Step-by-step prompt for adding a chart widget |
.github/prompts/add-new-component.prompt.md |
Step-by-step prompt for creating a new component |
.github/agents/network-dashboard-implementer.md |
Agent profile with planning, compliance, and stop behavior |
.github/skills/dashboard-widget.md |
Optional skill for widget scaffolding |
Stop Conditions
The AI must stop and ask the user when:
- A task requires modifying more than 3 existing files
- A task conflicts with any of the 20 rules
- The data shape is ambiguous or incomplete
- It is unclear whether to create or reuse a component
Validation Checklist
Before completing any task, verify:
-
ng buildpasses fromfrontend/ - No
anytypes introduced - No
console.logstatements - No dead or commented-out code
- All imports are used
- SCSS nesting β€ 3 levels
- CSS tokens used (no raw hex/px/rem)
- Implementation follows db.json β model β service β UI order