@thierrynakoa/fire-flow 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/.claude-plugin/plugin.json +64 -0
  2. package/ARCHITECTURE-DIAGRAM.md +440 -0
  3. package/COMMAND-REFERENCE.md +172 -0
  4. package/DOMINION-FLOW-OVERVIEW.md +421 -0
  5. package/LICENSE +21 -0
  6. package/QUICK-START.md +351 -0
  7. package/README.md +398 -0
  8. package/TROUBLESHOOTING.md +264 -0
  9. package/agents/fire-codebase-mapper.md +484 -0
  10. package/agents/fire-debugger.md +535 -0
  11. package/agents/fire-executor.md +949 -0
  12. package/agents/fire-fact-checker.md +276 -0
  13. package/agents/fire-learncoding-explainer.md +237 -0
  14. package/agents/fire-learncoding-walker.md +147 -0
  15. package/agents/fire-planner.md +675 -0
  16. package/agents/fire-project-researcher.md +155 -0
  17. package/agents/fire-research-synthesizer.md +166 -0
  18. package/agents/fire-researcher.md +723 -0
  19. package/agents/fire-reviewer.md +499 -0
  20. package/agents/fire-roadmapper.md +203 -0
  21. package/agents/fire-verifier.md +880 -0
  22. package/bin/cli.js +208 -0
  23. package/commands/fire-0-orient.md +476 -0
  24. package/commands/fire-1-new.md +281 -0
  25. package/commands/fire-1a-discuss.md +455 -0
  26. package/commands/fire-2-plan.md +527 -0
  27. package/commands/fire-3-execute.md +1303 -0
  28. package/commands/fire-4-verify.md +845 -0
  29. package/commands/fire-5-handoff.md +515 -0
  30. package/commands/fire-6-resume.md +501 -0
  31. package/commands/fire-7-review.md +409 -0
  32. package/commands/fire-add-new-skill.md +598 -0
  33. package/commands/fire-analytics.md +499 -0
  34. package/commands/fire-assumptions.md +78 -0
  35. package/commands/fire-autonomous.md +528 -0
  36. package/commands/fire-brainstorm.md +413 -0
  37. package/commands/fire-complete-milestone.md +270 -0
  38. package/commands/fire-dashboard.md +375 -0
  39. package/commands/fire-debug.md +663 -0
  40. package/commands/fire-discover.md +616 -0
  41. package/commands/fire-double-check.md +460 -0
  42. package/commands/fire-execute-plan.md +182 -0
  43. package/commands/fire-learncoding.md +242 -0
  44. package/commands/fire-loop-resume.md +272 -0
  45. package/commands/fire-loop-stop.md +198 -0
  46. package/commands/fire-loop.md +1168 -0
  47. package/commands/fire-map-codebase.md +313 -0
  48. package/commands/fire-new-milestone.md +356 -0
  49. package/commands/fire-reflect.md +235 -0
  50. package/commands/fire-research.md +246 -0
  51. package/commands/fire-search.md +330 -0
  52. package/commands/fire-security-audit-repo.md +293 -0
  53. package/commands/fire-security-scan.md +484 -0
  54. package/commands/fire-session-summary.md +252 -0
  55. package/commands/fire-skills-diff.md +506 -0
  56. package/commands/fire-skills-history.md +388 -0
  57. package/commands/fire-skills-rollback.md +408 -0
  58. package/commands/fire-skills-sync.md +470 -0
  59. package/commands/fire-test.md +520 -0
  60. package/commands/fire-todos.md +335 -0
  61. package/commands/fire-transition.md +186 -0
  62. package/commands/fire-update.md +312 -0
  63. package/commands/fire-verify-uat.md +146 -0
  64. package/commands/fire-vuln-scan.md +493 -0
  65. package/hooks/hooks.json +16 -0
  66. package/hooks/run-hook.cmd +69 -0
  67. package/hooks/run-hook.sh +8 -0
  68. package/hooks/run-session-end.cmd +49 -0
  69. package/hooks/run-session-end.sh +7 -0
  70. package/hooks/session-end.sh +90 -0
  71. package/hooks/session-start.sh +111 -0
  72. package/package.json +52 -0
  73. package/plugin.json +7 -0
  74. package/references/auto-skill-extraction.md +136 -0
  75. package/references/behavioral-directives.md +365 -0
  76. package/references/blocker-tracking.md +155 -0
  77. package/references/checkpoints.md +165 -0
  78. package/references/circuit-breaker.md +410 -0
  79. package/references/context-engineering.md +587 -0
  80. package/references/decision-time-guidance.md +289 -0
  81. package/references/error-classification.md +326 -0
  82. package/references/execution-mode-intelligence.md +242 -0
  83. package/references/git-integration.md +217 -0
  84. package/references/honesty-protocols.md +304 -0
  85. package/references/integration-architecture.md +470 -0
  86. package/references/issue-to-pr-pipeline.md +150 -0
  87. package/references/metrics-and-trends.md +234 -0
  88. package/references/playwright-e2e-testing.md +326 -0
  89. package/references/questioning.md +125 -0
  90. package/references/research-improvements.md +110 -0
  91. package/references/skills-usage-guide.md +429 -0
  92. package/references/tdd.md +131 -0
  93. package/references/testing-enforcement.md +192 -0
  94. package/references/ui-brand.md +383 -0
  95. package/references/validation-checklist.md +456 -0
  96. package/references/verification-patterns.md +187 -0
  97. package/references/warrior-principles.md +173 -0
  98. package/skills-library/SKILLS-INDEX.md +588 -0
  99. package/skills-library/_general/frontend/html-visual-reports.md +292 -0
  100. package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -0
  101. package/skills-library/_general/methodology/learncoding-agentic-pattern.md +114 -0
  102. package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +238 -0
  103. package/skills-library/basics/api-rest-basics.md +162 -0
  104. package/skills-library/basics/env-variables.md +96 -0
  105. package/skills-library/basics/error-handling-basics.md +125 -0
  106. package/skills-library/basics/git-commit-conventions.md +106 -0
  107. package/skills-library/basics/readme-template.md +108 -0
  108. package/skills-library/common-tasks/async-await-patterns.md +157 -0
  109. package/skills-library/common-tasks/auth-jwt-basics.md +164 -0
  110. package/skills-library/common-tasks/database-schema-design.md +166 -0
  111. package/skills-library/common-tasks/file-upload-basics.md +166 -0
  112. package/skills-library/common-tasks/form-validation.md +159 -0
  113. package/skills-library/debugging/FAILURE_TAXONOMY_CLASSIFICATION.md +117 -0
  114. package/skills-library/debugging/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +86 -0
  115. package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +678 -0
  116. package/skills-library/methodology/CONFIDENCE_GATED_EXECUTION.md +243 -0
  117. package/skills-library/methodology/EVIDENCE_BASED_VALIDATION.md +308 -0
  118. package/skills-library/methodology/MULTI_PERSPECTIVE_CODE_REVIEW.md +330 -0
  119. package/skills-library/methodology/PATH_VERIFICATION_GATE.md +211 -0
  120. package/skills-library/methodology/REFLEXION_MEMORY_PATTERN.md +183 -0
  121. package/skills-library/methodology/RESEARCH_BACKED_WORKFLOW_UPGRADE.md +263 -0
  122. package/skills-library/methodology/SABBATH_REST_PATTERN.md +267 -0
  123. package/skills-library/methodology/STONE_AND_SCAFFOLD.md +220 -0
  124. package/skills-library/performance/cache-augmented-generation.md +172 -0
  125. package/skills-library/quality-safety/debugging-steps.md +147 -0
  126. package/skills-library/quality-safety/deployment-checklist.md +155 -0
  127. package/skills-library/quality-safety/security-checklist.md +204 -0
  128. package/skills-library/quality-safety/testing-basics.md +180 -0
  129. package/skills-library/security/agent-security-scanner.md +445 -0
  130. package/skills-library/specialists/api-architecture/api-designer.md +49 -0
  131. package/skills-library/specialists/api-architecture/graphql-architect.md +49 -0
  132. package/skills-library/specialists/api-architecture/mcp-developer.md +51 -0
  133. package/skills-library/specialists/api-architecture/microservices-architect.md +50 -0
  134. package/skills-library/specialists/api-architecture/websocket-engineer.md +48 -0
  135. package/skills-library/specialists/backend/django-expert.md +52 -0
  136. package/skills-library/specialists/backend/fastapi-expert.md +52 -0
  137. package/skills-library/specialists/backend/laravel-specialist.md +52 -0
  138. package/skills-library/specialists/backend/nestjs-expert.md +51 -0
  139. package/skills-library/specialists/backend/rails-expert.md +53 -0
  140. package/skills-library/specialists/backend/spring-boot-engineer.md +56 -0
  141. package/skills-library/specialists/data-ml/fine-tuning-expert.md +48 -0
  142. package/skills-library/specialists/data-ml/ml-pipeline.md +47 -0
  143. package/skills-library/specialists/data-ml/pandas-pro.md +47 -0
  144. package/skills-library/specialists/data-ml/rag-architect.md +51 -0
  145. package/skills-library/specialists/data-ml/spark-engineer.md +47 -0
  146. package/skills-library/specialists/frontend/angular-architect.md +52 -0
  147. package/skills-library/specialists/frontend/flutter-expert.md +51 -0
  148. package/skills-library/specialists/frontend/nextjs-developer.md +54 -0
  149. package/skills-library/specialists/frontend/react-native-expert.md +50 -0
  150. package/skills-library/specialists/frontend/vue-expert.md +51 -0
  151. package/skills-library/specialists/infrastructure/chaos-engineer.md +74 -0
  152. package/skills-library/specialists/infrastructure/cloud-architect.md +70 -0
  153. package/skills-library/specialists/infrastructure/database-optimizer.md +64 -0
  154. package/skills-library/specialists/infrastructure/devops-engineer.md +70 -0
  155. package/skills-library/specialists/infrastructure/kubernetes-specialist.md +52 -0
  156. package/skills-library/specialists/infrastructure/monitoring-expert.md +70 -0
  157. package/skills-library/specialists/infrastructure/sre-engineer.md +70 -0
  158. package/skills-library/specialists/infrastructure/terraform-engineer.md +51 -0
  159. package/skills-library/specialists/languages/cpp-pro.md +74 -0
  160. package/skills-library/specialists/languages/csharp-developer.md +69 -0
  161. package/skills-library/specialists/languages/dotnet-core-expert.md +54 -0
  162. package/skills-library/specialists/languages/golang-pro.md +51 -0
  163. package/skills-library/specialists/languages/java-architect.md +49 -0
  164. package/skills-library/specialists/languages/javascript-pro.md +68 -0
  165. package/skills-library/specialists/languages/kotlin-specialist.md +68 -0
  166. package/skills-library/specialists/languages/php-pro.md +49 -0
  167. package/skills-library/specialists/languages/python-pro.md +52 -0
  168. package/skills-library/specialists/languages/react-expert.md +51 -0
  169. package/skills-library/specialists/languages/rust-engineer.md +50 -0
  170. package/skills-library/specialists/languages/sql-pro.md +56 -0
  171. package/skills-library/specialists/languages/swift-expert.md +69 -0
  172. package/skills-library/specialists/languages/typescript-pro.md +51 -0
  173. package/skills-library/specialists/platform/atlassian-mcp.md +52 -0
  174. package/skills-library/specialists/platform/embedded-systems.md +53 -0
  175. package/skills-library/specialists/platform/game-developer.md +53 -0
  176. package/skills-library/specialists/platform/salesforce-developer.md +53 -0
  177. package/skills-library/specialists/platform/shopify-expert.md +49 -0
  178. package/skills-library/specialists/platform/wordpress-pro.md +49 -0
  179. package/skills-library/specialists/quality/code-documenter.md +51 -0
  180. package/skills-library/specialists/quality/code-reviewer.md +67 -0
  181. package/skills-library/specialists/quality/debugging-wizard.md +51 -0
  182. package/skills-library/specialists/quality/fullstack-guardian.md +51 -0
  183. package/skills-library/specialists/quality/legacy-modernizer.md +50 -0
  184. package/skills-library/specialists/quality/playwright-expert.md +65 -0
  185. package/skills-library/specialists/quality/spec-miner.md +56 -0
  186. package/skills-library/specialists/quality/test-master.md +65 -0
  187. package/skills-library/specialists/security/secure-code-guardian.md +55 -0
  188. package/skills-library/specialists/security/security-reviewer.md +53 -0
  189. package/skills-library/specialists/workflow/architecture-designer.md +53 -0
  190. package/skills-library/specialists/workflow/cli-developer.md +70 -0
  191. package/skills-library/specialists/workflow/feature-forge.md +65 -0
  192. package/skills-library/specialists/workflow/prompt-engineer.md +54 -0
  193. package/skills-library/specialists/workflow/the-fool.md +62 -0
  194. package/templates/ASSUMPTIONS.md +125 -0
  195. package/templates/BLOCKERS.md +73 -0
  196. package/templates/DECISION_LOG.md +116 -0
  197. package/templates/UAT.md +96 -0
  198. package/templates/blueprint.md +94 -0
  199. package/templates/brainstorm.md +185 -0
  200. package/templates/conscience.md +92 -0
  201. package/templates/fire-handoff.md +159 -0
  202. package/templates/metrics.md +67 -0
  203. package/templates/phase-prompt.md +142 -0
  204. package/templates/record.md +131 -0
  205. package/templates/review-report.md +117 -0
  206. package/templates/skills-index.md +157 -0
  207. package/templates/verification.md +149 -0
  208. package/templates/vision.md +79 -0
  209. package/validation-config.yml +793 -0
  210. package/version.json +7 -0
  211. package/workflows/execute-phase.md +732 -0
  212. package/workflows/handoff-session.md +678 -0
  213. package/workflows/new-project.md +578 -0
  214. package/workflows/plan-phase.md +592 -0
  215. package/workflows/verify-phase.md +874 -0
@@ -0,0 +1,281 @@
1
+ ---
2
+ description: Initialize a new project with Dominion Flow (Dominion Flow)
3
+ ---
4
+
5
+ # /fire-1-new
6
+
7
+ > Initialize a new project with Dominion Flow orchestration
8
+
9
+ ---
10
+
11
+ ## Purpose
12
+
13
+ Initialize a new project with both Dominion Flow project structure and WARRIOR integration. This command gathers requirements through adaptive questioning, creates the project roadmap, sets up the skills tracking system, and prepares session continuity hooks.
14
+
15
+ ---
16
+
17
+ ## Arguments
18
+
19
+ ```yaml
20
+ arguments: none
21
+ optional_flags:
22
+ --name: "Project name (will prompt if not provided)"
23
+ --path: "Project path (defaults to current directory)"
24
+ --minimal: "Skip adaptive questioning, use defaults"
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Process
30
+
31
+ ### Step 1: Environment Validation
32
+
33
+ ```
34
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
35
+ DOMINION FLOW > PROJECT INITIALIZATION
36
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
37
+ ```
38
+
39
+ **Validate:**
40
+ 1. Check if `.planning/` directory already exists (warn if so)
41
+ 2. Verify write permissions in target directory
42
+ 3. Check for existing git repository (recommend if not present)
43
+
44
+ ### Step 2: Gather Requirements (Dominion Flow Standard)
45
+
46
+ Run Dominion Flow new-project workflow through adaptive questioning:
47
+
48
+ **Core Questions:**
49
+ 1. What is this project? (one sentence)
50
+ 2. Who is the primary user?
51
+ 3. What is the core value it provides?
52
+ 4. What are the non-negotiable features (must-haves)?
53
+
54
+ **Technical Questions:**
55
+ 1. What tech stack are you using?
56
+ 2. Are there existing codebases to integrate with?
57
+ 3. What are known technical constraints?
58
+
59
+ **Timeline Questions:**
60
+ 1. What's the target completion date?
61
+ 2. What milestones are critical?
62
+
63
+ ### Step 3: Create Project Structure
64
+
65
+ **Create `.planning/` directory with:**
66
+
67
+ ```
68
+ .planning/
69
+ ├── PROJECT.md # Project overview from requirements
70
+ ├── VISION.md # Phase-based roadmap
71
+ ├── CONSCIENCE.md # Enhanced with WARRIOR fields
72
+ ├── REQUIREMENTS.md # Captured requirements
73
+ ├── SKILLS-INDEX.md # Skills tracking (empty, ready)
74
+ └── phases/ # Empty, ready for phase plans
75
+ ```
76
+
77
+ ### Step 4: Initialize WARRIOR Handoff System
78
+
79
+ **Create handoff directory if not exists:**
80
+ ```bash
81
+ mkdir -p ~/.claude/warrior-handoffs/
82
+ ```
83
+
84
+ **Create initial handoff file:**
85
+ ```
86
+ ~/.claude/warrior-handoffs/{PROJECT_NAME}_YYYY-MM-DD_init.md
87
+ ```
88
+
89
+ ### Step 5: Set Up SessionStart Hook
90
+
91
+ **Verify hook configuration in plugin:**
92
+ - Hook auto-injects CONSCIENCE.md context on session start
93
+ - Hook reminds about WARRIOR handoffs
94
+
95
+ ### Step 6: Create SKILLS-INDEX.md
96
+
97
+ Initialize empty skills tracking:
98
+
99
+ ```markdown
100
+ # Skills Applied to This Project
101
+
102
+ ## Summary
103
+ - Total skills applied: 0
104
+ - Categories used: 0
105
+ - Last skill applied: N/A
106
+
107
+ ## By Phase
108
+ *No phases executed yet*
109
+
110
+ ## By Category
111
+ *Skills will be tracked here as they're applied during execution*
112
+
113
+ ## Quick Reference
114
+ Run `/fire-search [query]` to find relevant skills.
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Agent Spawning
120
+
121
+ This command does NOT spawn agents. It runs interactively with the user to gather requirements.
122
+
123
+ **If `--minimal` flag used:**
124
+ - Skip adaptive questioning
125
+ - Use project name from current directory
126
+ - Create minimal structure with placeholder content
127
+ - Display message to run `/fire-2-plan 1` to begin planning
128
+
129
+ ---
130
+
131
+ ## Output Structure
132
+
133
+ ### .planning/PROJECT.md
134
+
135
+ ```markdown
136
+ # {Project Name}
137
+
138
+ ## Core Value
139
+ {One sentence description of what this project does}
140
+
141
+ ## Primary User
142
+ {Who uses this}
143
+
144
+ ## Must-Have Features
145
+ 1. {Feature 1}
146
+ 2. {Feature 2}
147
+ 3. {Feature 3}
148
+
149
+ ## Tech Stack
150
+ - {Tech 1}
151
+ - {Tech 2}
152
+ - {Tech 3}
153
+
154
+ ## Constraints
155
+ - {Constraint 1}
156
+ - {Constraint 2}
157
+
158
+ ## Success Criteria
159
+ - {Criterion 1}
160
+ - {Criterion 2}
161
+ ```
162
+
163
+ ### .planning/VISION.md
164
+
165
+ ```markdown
166
+ # Project Roadmap
167
+
168
+ ## Milestone: v{version} - {name}
169
+
170
+ ### Phase 1: {name}
171
+ **Objective:** {what this phase accomplishes}
172
+ **Estimated:** {time estimate}
173
+ **Must-Haves:**
174
+ - {Must-have 1}
175
+ - {Must-have 2}
176
+
177
+ ### Phase 2: {name}
178
+ **Objective:** {what this phase accomplishes}
179
+ **Estimated:** {time estimate}
180
+ **Must-Haves:**
181
+ - {Must-have 1}
182
+ - {Must-have 2}
183
+
184
+ [Additional phases as needed]
185
+ ```
186
+
187
+ ### .planning/CONSCIENCE.md
188
+
189
+ Uses template from `templates/state.md` with fields populated:
190
+ - Project name and core value
191
+ - Current phase: 1 of N
192
+ - Status: Ready to plan
193
+ - WARRIOR Integration section initialized
194
+ - Session Continuity section initialized
195
+
196
+ ---
197
+
198
+ ## Success Criteria
199
+
200
+ ### Required Outputs
201
+ - [ ] `.planning/` directory created
202
+ - [ ] `PROJECT.md` with requirements captured
203
+ - [ ] `VISION.md` with phases defined
204
+ - [ ] `CONSCIENCE.md` initialized with WARRIOR fields
205
+ - [ ] `SKILLS-INDEX.md` created (empty)
206
+ - [ ] `phases/` directory created
207
+ - [ ] Initial handoff file created in `~/.claude/warrior-handoffs/`
208
+
209
+ ### Completion Display
210
+
211
+ ```
212
+ ╔══════════════════════════════════════════════════════════════════════════════╗
213
+ ║ ✓ PROJECT INITIALIZED ║
214
+ ╠══════════════════════════════════════════════════════════════════════════════╣
215
+ â•‘ â•‘
216
+ â•‘ Project: {project_name} â•‘
217
+ â•‘ Phases: {phase_count} defined â•‘
218
+ â•‘ Status: Ready to plan â•‘
219
+ â•‘ â•‘
220
+ â•‘ Created: â•‘
221
+ ║ ✓ .planning/PROJECT.md ║
222
+ ║ ✓ .planning/VISION.md ║
223
+ ║ ✓ .planning/CONSCIENCE.md ║
224
+ ║ ✓ .planning/SKILLS-INDEX.md ║
225
+ ║ ✓ .planning/phases/ ║
226
+ ║ ✓ ~/.claude/warrior-handoffs/{project}_init.md ║
227
+ â•‘ â•‘
228
+ ╠══════════════════════════════════════════════════════════════════════════════╣
229
+ â•‘ NEXT UP â•‘
230
+ ├──────────────────────────────────────────────────────────────────────────────┤
231
+ â•‘ â•‘
232
+ ║ → Run `/fire-2-plan 1` to create plans for Phase 1 ║
233
+ ║ → Or run `/fire-dashboard` to view project status ║
234
+ â•‘ â•‘
235
+ ╚══════════════════════════════════════════════════════════════════════════════╝
236
+ ```
237
+
238
+ ---
239
+
240
+ ## Error Handling
241
+
242
+ ### .planning/ Already Exists
243
+
244
+ ```
245
+ ╔══════════════════════════════════════════════════════════════════════════════╗
246
+ â•‘ âš  WARNING: Existing Project Detected â•‘
247
+ ╠══════════════════════════════════════════════════════════════════════════════╣
248
+ â•‘ â•‘
249
+ â•‘ Found existing .planning/ directory. â•‘
250
+ â•‘ â•‘
251
+ â•‘ Options: â•‘
252
+ â•‘ A) Use `/fire-6-resume` to continue existing project â•‘
253
+ â•‘ B) Delete .planning/ and run `/fire-1-new` again â•‘
254
+ â•‘ C) Use `--path [new-directory]` to initialize elsewhere â•‘
255
+ â•‘ â•‘
256
+ ╚══════════════════════════════════════════════════════════════════════════════╝
257
+ ```
258
+
259
+ ### Write Permission Denied
260
+
261
+ ```
262
+ ╔══════════════════════════════════════════════════════════════════════════════╗
263
+ ║ ✗ ERROR: Cannot Create Project ║
264
+ ╠══════════════════════════════════════════════════════════════════════════════╣
265
+ â•‘ â•‘
266
+ â•‘ No write permission in: {path} â•‘
267
+ â•‘ â•‘
268
+ â•‘ Action: Run from a directory where you have write access â•‘
269
+ â•‘ â•‘
270
+ ╚══════════════════════════════════════════════════════════════════════════════╝
271
+ ```
272
+
273
+ ---
274
+
275
+ ## References
276
+
277
+ - **Template:** `@templates/state.md` - CONSCIENCE.md template
278
+ - **Template:** `@templates/roadmap.md` - ROADMAP template
279
+ - **Template:** `@templates/skills-index.md` - Skills tracking template
280
+ - **Protocol:** `@references/honesty-protocols.md` - WARRIOR honesty foundation
281
+ - **Brand:** `@references/ui-brand.md` - Visual output standards