1.9 KiB
1.9 KiB
Product voice (Forja UI)
All user-visible strings in the web UI, API error messages shown in the UI, and new code (identifiers, comments, docstrings, logs) must be in English.
Agent YAML content (purpose, system_prompt, examples) may use any language required by the domain.
Tone
- Operational and precise, like an internal governance console.
- Short labels; full sentences only where explanation helps.
- No role-play, lore, or game mechanics.
Navigation: one page, six stages
The UI is a single page (/) organised as the lifecycle stages. The header nav
contains anchors to each stage; legacy multi-page routes 301-redirect to them.
| Stage | Anchor | Content |
|---|---|---|
| 01 Define | #define |
Agents (all versions + states) and guardrail policies |
| 02 Run | #run |
Demo button + free-form governed execution |
| 03 Approve | #approve |
HITL queue for paused runs |
| 04 Train & evaluate | #train |
Training runs, evaluation, promotion request |
| 05 Promote | #promote |
Governance promotion queue |
| 06 Audit | #audit |
Completed runs |
Execution status labels
| Internal status | UI label |
|---|---|
running |
Running |
awaiting_approval |
Pending approval |
completed |
Completed |
failed |
Failed |
blocked_by_guardrail |
Blocked by policy |
Forbidden terms (UI copy)
Do not use these in templates, buttons, or dynamic HTML from web/ui.py:
- blade, steel, strike, anvil, forge (as verb), temper, tempered, forging
- judgment chamber, bless, shatter, arsenal (as place name)
- hearth, crucible, battle (as station names)
- FORGE MASTER, level, heat, XP, station I/II/III
- Fire • Hammer • Judgment and similar slogans
The product name Forja is allowed in the header and documentation.
Development
Follow karpathy.md: think before coding, simplicity first, surgical changes, verifiable success criteria (make test, make lint).