@bastani/atomic 0.6.8 → 0.7.0-2
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.
- package/bin/atomic +65 -0
- package/package.json +17 -82
- package/postinstall.mjs +47 -0
- package/.agents/skills/ado-commit/SKILL.md +0 -94
- package/.agents/skills/ado-create-pr/SKILL.md +0 -211
- package/.agents/skills/advanced-evaluation/SKILL.md +0 -404
- package/.agents/skills/advanced-evaluation/references/bias-mitigation.md +0 -288
- package/.agents/skills/advanced-evaluation/references/evaluation-pipeline.md +0 -43
- package/.agents/skills/advanced-evaluation/references/implementation-patterns.md +0 -315
- package/.agents/skills/advanced-evaluation/references/metrics-guide.md +0 -331
- package/.agents/skills/advanced-evaluation/scripts/evaluation_example.py +0 -392
- package/.agents/skills/ast-grep/SKILL.md +0 -325
- package/.agents/skills/ast-grep/references/rule_reference.md +0 -297
- package/.agents/skills/bdi-mental-states/SKILL.md +0 -313
- package/.agents/skills/bdi-mental-states/references/bdi-ontology-core.md +0 -207
- package/.agents/skills/bdi-mental-states/references/framework-integration.md +0 -582
- package/.agents/skills/bdi-mental-states/references/rdf-examples.md +0 -315
- package/.agents/skills/bdi-mental-states/references/sparql-competency.md +0 -420
- package/.agents/skills/bun/SKILL.md +0 -233
- package/.agents/skills/context-compression/SKILL.md +0 -274
- package/.agents/skills/context-compression/references/evaluation-framework.md +0 -213
- package/.agents/skills/context-compression/scripts/compression_evaluator.py +0 -862
- package/.agents/skills/context-compression/tests/test_compression_evaluator.py +0 -56
- package/.agents/skills/context-degradation/SKILL.md +0 -208
- package/.agents/skills/context-degradation/references/patterns.md +0 -314
- package/.agents/skills/context-degradation/scripts/degradation_detector.py +0 -614
- package/.agents/skills/context-fundamentals/SKILL.md +0 -203
- package/.agents/skills/context-fundamentals/references/context-components.md +0 -283
- package/.agents/skills/context-fundamentals/scripts/context_manager.py +0 -533
- package/.agents/skills/context-optimization/SKILL.md +0 -197
- package/.agents/skills/context-optimization/references/optimization_techniques.md +0 -272
- package/.agents/skills/context-optimization/scripts/compaction.py +0 -562
- package/.agents/skills/create-spec/SKILL.md +0 -249
- package/.agents/skills/docx/LICENSE.txt +0 -30
- package/.agents/skills/docx/SKILL.md +0 -592
- package/.agents/skills/docx/scripts/__init__.py +0 -1
- package/.agents/skills/docx/scripts/accept_changes.py +0 -135
- package/.agents/skills/docx/scripts/comment.py +0 -318
- package/.agents/skills/docx/scripts/office/helpers/__init__.py +0 -0
- package/.agents/skills/docx/scripts/office/helpers/merge_runs.py +0 -199
- package/.agents/skills/docx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/.agents/skills/docx/scripts/office/pack.py +0 -159
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/.agents/skills/docx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/.agents/skills/docx/scripts/office/soffice.py +0 -183
- package/.agents/skills/docx/scripts/office/unpack.py +0 -132
- package/.agents/skills/docx/scripts/office/validate.py +0 -111
- package/.agents/skills/docx/scripts/office/validators/__init__.py +0 -15
- package/.agents/skills/docx/scripts/office/validators/base.py +0 -847
- package/.agents/skills/docx/scripts/office/validators/docx.py +0 -446
- package/.agents/skills/docx/scripts/office/validators/pptx.py +0 -275
- package/.agents/skills/docx/scripts/office/validators/redlining.py +0 -247
- package/.agents/skills/docx/scripts/templates/comments.xml +0 -3
- package/.agents/skills/docx/scripts/templates/commentsExtended.xml +0 -3
- package/.agents/skills/docx/scripts/templates/commentsExtensible.xml +0 -3
- package/.agents/skills/docx/scripts/templates/commentsIds.xml +0 -3
- package/.agents/skills/docx/scripts/templates/people.xml +0 -3
- package/.agents/skills/evaluation/SKILL.md +0 -253
- package/.agents/skills/evaluation/references/metrics.md +0 -339
- package/.agents/skills/evaluation/scripts/evaluator.py +0 -627
- package/.agents/skills/explain-code/SKILL.md +0 -232
- package/.agents/skills/filesystem-context/SKILL.md +0 -289
- package/.agents/skills/filesystem-context/references/implementation-patterns.md +0 -549
- package/.agents/skills/filesystem-context/scripts/filesystem_context.py +0 -425
- package/.agents/skills/find-skills/SKILL.md +0 -144
- package/.agents/skills/gh-commit/SKILL.md +0 -245
- package/.agents/skills/gh-create-pr/SKILL.md +0 -95
- package/.agents/skills/hosted-agents/SKILL.md +0 -262
- package/.agents/skills/hosted-agents/references/infrastructure-patterns.md +0 -700
- package/.agents/skills/hosted-agents/scripts/sandbox_manager.py +0 -590
- package/.agents/skills/impeccable/SKILL.md +0 -178
- package/.agents/skills/impeccable/agents/openai.yaml +0 -4
- package/.agents/skills/impeccable/reference/adapt.md +0 -190
- package/.agents/skills/impeccable/reference/animate.md +0 -175
- package/.agents/skills/impeccable/reference/audit.md +0 -134
- package/.agents/skills/impeccable/reference/bolder.md +0 -113
- package/.agents/skills/impeccable/reference/brand.md +0 -114
- package/.agents/skills/impeccable/reference/clarify.md +0 -174
- package/.agents/skills/impeccable/reference/cognitive-load.md +0 -106
- package/.agents/skills/impeccable/reference/color-and-contrast.md +0 -105
- package/.agents/skills/impeccable/reference/colorize.md +0 -154
- package/.agents/skills/impeccable/reference/craft.md +0 -193
- package/.agents/skills/impeccable/reference/critique.md +0 -213
- package/.agents/skills/impeccable/reference/delight.md +0 -302
- package/.agents/skills/impeccable/reference/distill.md +0 -111
- package/.agents/skills/impeccable/reference/document.md +0 -427
- package/.agents/skills/impeccable/reference/extract.md +0 -70
- package/.agents/skills/impeccable/reference/harden.md +0 -347
- package/.agents/skills/impeccable/reference/heuristics-scoring.md +0 -234
- package/.agents/skills/impeccable/reference/interaction-design.md +0 -195
- package/.agents/skills/impeccable/reference/layout.md +0 -141
- package/.agents/skills/impeccable/reference/live.md +0 -594
- package/.agents/skills/impeccable/reference/motion-design.md +0 -109
- package/.agents/skills/impeccable/reference/onboard.md +0 -234
- package/.agents/skills/impeccable/reference/optimize.md +0 -258
- package/.agents/skills/impeccable/reference/overdrive.md +0 -130
- package/.agents/skills/impeccable/reference/personas.md +0 -178
- package/.agents/skills/impeccable/reference/polish.md +0 -232
- package/.agents/skills/impeccable/reference/product.md +0 -62
- package/.agents/skills/impeccable/reference/quieter.md +0 -99
- package/.agents/skills/impeccable/reference/responsive-design.md +0 -114
- package/.agents/skills/impeccable/reference/shape.md +0 -151
- package/.agents/skills/impeccable/reference/spatial-design.md +0 -100
- package/.agents/skills/impeccable/reference/teach.md +0 -156
- package/.agents/skills/impeccable/reference/typeset.md +0 -124
- package/.agents/skills/impeccable/reference/typography.md +0 -159
- package/.agents/skills/impeccable/reference/ux-writing.md +0 -107
- package/.agents/skills/impeccable/scripts/cleanup-deprecated.mjs +0 -284
- package/.agents/skills/impeccable/scripts/command-metadata.json +0 -94
- package/.agents/skills/impeccable/scripts/design-parser.mjs +0 -820
- package/.agents/skills/impeccable/scripts/detect-csp.mjs +0 -198
- package/.agents/skills/impeccable/scripts/is-generated.mjs +0 -69
- package/.agents/skills/impeccable/scripts/live-accept.mjs +0 -595
- package/.agents/skills/impeccable/scripts/live-browser.js +0 -4781
- package/.agents/skills/impeccable/scripts/live-inject.mjs +0 -445
- package/.agents/skills/impeccable/scripts/live-poll.mjs +0 -186
- package/.agents/skills/impeccable/scripts/live-server.mjs +0 -694
- package/.agents/skills/impeccable/scripts/live-wrap.mjs +0 -571
- package/.agents/skills/impeccable/scripts/live.mjs +0 -247
- package/.agents/skills/impeccable/scripts/load-context.mjs +0 -141
- package/.agents/skills/impeccable/scripts/modern-screenshot.umd.js +0 -14
- package/.agents/skills/impeccable/scripts/pin.mjs +0 -214
- package/.agents/skills/init/SKILL.md +0 -140
- package/.agents/skills/liteparse/SKILL.md +0 -223
- package/.agents/skills/memory-systems/SKILL.md +0 -221
- package/.agents/skills/memory-systems/references/implementation.md +0 -551
- package/.agents/skills/memory-systems/scripts/memory_store.py +0 -616
- package/.agents/skills/multi-agent-patterns/SKILL.md +0 -259
- package/.agents/skills/multi-agent-patterns/references/frameworks.md +0 -433
- package/.agents/skills/multi-agent-patterns/scripts/coordination.py +0 -613
- package/.agents/skills/opentui/SKILL.md +0 -202
- package/.agents/skills/opentui/references/animation/REFERENCE.md +0 -431
- package/.agents/skills/opentui/references/components/REFERENCE.md +0 -144
- package/.agents/skills/opentui/references/components/code-diff.md +0 -672
- package/.agents/skills/opentui/references/components/containers.md +0 -417
- package/.agents/skills/opentui/references/components/inputs.md +0 -531
- package/.agents/skills/opentui/references/components/text-display.md +0 -386
- package/.agents/skills/opentui/references/core/REFERENCE.md +0 -145
- package/.agents/skills/opentui/references/core/api.md +0 -543
- package/.agents/skills/opentui/references/core/configuration.md +0 -168
- package/.agents/skills/opentui/references/core/gotchas.md +0 -393
- package/.agents/skills/opentui/references/core/patterns.md +0 -449
- package/.agents/skills/opentui/references/keyboard/REFERENCE.md +0 -617
- package/.agents/skills/opentui/references/layout/REFERENCE.md +0 -337
- package/.agents/skills/opentui/references/layout/patterns.md +0 -444
- package/.agents/skills/opentui/references/react/REFERENCE.md +0 -174
- package/.agents/skills/opentui/references/react/api.md +0 -436
- package/.agents/skills/opentui/references/react/configuration.md +0 -302
- package/.agents/skills/opentui/references/react/gotchas.md +0 -443
- package/.agents/skills/opentui/references/react/patterns.md +0 -501
- package/.agents/skills/opentui/references/solid/REFERENCE.md +0 -201
- package/.agents/skills/opentui/references/solid/api.md +0 -564
- package/.agents/skills/opentui/references/solid/configuration.md +0 -316
- package/.agents/skills/opentui/references/solid/gotchas.md +0 -427
- package/.agents/skills/opentui/references/solid/patterns.md +0 -560
- package/.agents/skills/opentui/references/testing/REFERENCE.md +0 -614
- package/.agents/skills/pdf/LICENSE.txt +0 -30
- package/.agents/skills/pdf/SKILL.md +0 -316
- package/.agents/skills/pdf/forms.md +0 -294
- package/.agents/skills/pdf/reference.md +0 -612
- package/.agents/skills/pdf/scripts/check_bounding_boxes.py +0 -65
- package/.agents/skills/pdf/scripts/check_fillable_fields.py +0 -11
- package/.agents/skills/pdf/scripts/convert_pdf_to_images.py +0 -33
- package/.agents/skills/pdf/scripts/create_validation_image.py +0 -37
- package/.agents/skills/pdf/scripts/extract_form_field_info.py +0 -122
- package/.agents/skills/pdf/scripts/extract_form_structure.py +0 -115
- package/.agents/skills/pdf/scripts/fill_fillable_fields.py +0 -98
- package/.agents/skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -107
- package/.agents/skills/playwright-cli/SKILL.md +0 -390
- package/.agents/skills/playwright-cli/references/element-attributes.md +0 -23
- package/.agents/skills/playwright-cli/references/playwright-tests.md +0 -39
- package/.agents/skills/playwright-cli/references/request-mocking.md +0 -87
- package/.agents/skills/playwright-cli/references/running-code.md +0 -241
- package/.agents/skills/playwright-cli/references/session-management.md +0 -225
- package/.agents/skills/playwright-cli/references/spec-driven-testing.md +0 -305
- package/.agents/skills/playwright-cli/references/storage-state.md +0 -275
- package/.agents/skills/playwright-cli/references/test-generation.md +0 -134
- package/.agents/skills/playwright-cli/references/tracing.md +0 -139
- package/.agents/skills/playwright-cli/references/video-recording.md +0 -143
- package/.agents/skills/pptx/LICENSE.txt +0 -30
- package/.agents/skills/pptx/SKILL.md +0 -234
- package/.agents/skills/pptx/editing.md +0 -205
- package/.agents/skills/pptx/pptxgenjs.md +0 -420
- package/.agents/skills/pptx/scripts/__init__.py +0 -0
- package/.agents/skills/pptx/scripts/add_slide.py +0 -195
- package/.agents/skills/pptx/scripts/clean.py +0 -286
- package/.agents/skills/pptx/scripts/office/helpers/__init__.py +0 -0
- package/.agents/skills/pptx/scripts/office/helpers/merge_runs.py +0 -199
- package/.agents/skills/pptx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/.agents/skills/pptx/scripts/office/pack.py +0 -159
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/.agents/skills/pptx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/.agents/skills/pptx/scripts/office/soffice.py +0 -183
- package/.agents/skills/pptx/scripts/office/unpack.py +0 -132
- package/.agents/skills/pptx/scripts/office/validate.py +0 -111
- package/.agents/skills/pptx/scripts/office/validators/__init__.py +0 -15
- package/.agents/skills/pptx/scripts/office/validators/base.py +0 -847
- package/.agents/skills/pptx/scripts/office/validators/docx.py +0 -446
- package/.agents/skills/pptx/scripts/office/validators/pptx.py +0 -275
- package/.agents/skills/pptx/scripts/office/validators/redlining.py +0 -247
- package/.agents/skills/pptx/scripts/thumbnail.py +0 -289
- package/.agents/skills/project-development/SKILL.md +0 -293
- package/.agents/skills/project-development/references/case-studies.md +0 -388
- package/.agents/skills/project-development/references/pipeline-patterns.md +0 -610
- package/.agents/skills/project-development/scripts/pipeline_template.py +0 -796
- package/.agents/skills/prompt-engineer/SKILL.md +0 -265
- package/.agents/skills/prompt-engineer/references/advanced_patterns.md +0 -271
- package/.agents/skills/prompt-engineer/references/core_prompting.md +0 -137
- package/.agents/skills/prompt-engineer/references/quality_improvement.md +0 -193
- package/.agents/skills/research-codebase/SKILL.md +0 -229
- package/.agents/skills/ripgrep/SKILL.md +0 -384
- package/.agents/skills/skill-creator/LICENSE.txt +0 -202
- package/.agents/skills/skill-creator/SKILL.md +0 -487
- package/.agents/skills/skill-creator/agents/analyzer.md +0 -274
- package/.agents/skills/skill-creator/agents/comparator.md +0 -202
- package/.agents/skills/skill-creator/agents/grader.md +0 -223
- package/.agents/skills/skill-creator/assets/eval_review.html +0 -146
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +0 -471
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +0 -1325
- package/.agents/skills/skill-creator/references/schemas.md +0 -430
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
- package/.agents/skills/skill-creator/scripts/generate_report.py +0 -326
- package/.agents/skills/skill-creator/scripts/improve_description.py +0 -247
- package/.agents/skills/skill-creator/scripts/package_skill.py +0 -136
- package/.agents/skills/skill-creator/scripts/quick_validate.py +0 -103
- package/.agents/skills/skill-creator/scripts/run_eval.py +0 -310
- package/.agents/skills/skill-creator/scripts/run_loop.py +0 -328
- package/.agents/skills/skill-creator/scripts/utils.py +0 -47
- package/.agents/skills/sl-commit/SKILL.md +0 -53
- package/.agents/skills/sl-submit-diff/SKILL.md +0 -57
- package/.agents/skills/tdd/SKILL.md +0 -111
- package/.agents/skills/tdd/deep-modules.md +0 -33
- package/.agents/skills/tdd/interface-design.md +0 -31
- package/.agents/skills/tdd/mocking.md +0 -59
- package/.agents/skills/tdd/refactoring.md +0 -10
- package/.agents/skills/tdd/tests.md +0 -61
- package/.agents/skills/tool-design/SKILL.md +0 -273
- package/.agents/skills/tool-design/references/architectural_reduction.md +0 -210
- package/.agents/skills/tool-design/references/best_practices.md +0 -176
- package/.agents/skills/tool-design/scripts/description_generator.py +0 -528
- package/.agents/skills/typescript-advanced-types/SKILL.md +0 -720
- package/.agents/skills/typescript-expert/SKILL.md +0 -434
- package/.agents/skills/typescript-expert/references/tsconfig-strict.json +0 -92
- package/.agents/skills/typescript-expert/references/typescript-cheatsheet.md +0 -383
- package/.agents/skills/typescript-expert/references/utility-types.ts +0 -335
- package/.agents/skills/typescript-expert/scripts/ts_diagnostic.py +0 -203
- package/.agents/skills/typescript-react-reviewer/SKILL.md +0 -201
- package/.agents/skills/typescript-react-reviewer/references/antipatterns.md +0 -510
- package/.agents/skills/typescript-react-reviewer/references/checklist.md +0 -267
- package/.agents/skills/typescript-react-reviewer/references/react19-patterns.md +0 -305
- package/.agents/skills/workflow-creator/SKILL.md +0 -553
- package/.agents/skills/workflow-creator/references/agent-sessions.md +0 -891
- package/.agents/skills/workflow-creator/references/agent-setup-recipe.md +0 -266
- package/.agents/skills/workflow-creator/references/computation-and-validation.md +0 -201
- package/.agents/skills/workflow-creator/references/control-flow.md +0 -470
- package/.agents/skills/workflow-creator/references/failure-modes.md +0 -1014
- package/.agents/skills/workflow-creator/references/getting-started.md +0 -392
- package/.agents/skills/workflow-creator/references/registry-and-validation.md +0 -141
- package/.agents/skills/workflow-creator/references/running-workflows.md +0 -418
- package/.agents/skills/workflow-creator/references/session-config.md +0 -431
- package/.agents/skills/workflow-creator/references/state-and-data-flow.md +0 -356
- package/.agents/skills/workflow-creator/references/user-input.md +0 -234
- package/.agents/skills/workflow-creator/references/workflow-inputs.md +0 -392
- package/.agents/skills/xlsx/LICENSE.txt +0 -30
- package/.agents/skills/xlsx/SKILL.md +0 -294
- package/.agents/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
- package/.agents/skills/xlsx/scripts/office/helpers/merge_runs.py +0 -199
- package/.agents/skills/xlsx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/.agents/skills/xlsx/scripts/office/pack.py +0 -159
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/.agents/skills/xlsx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/.agents/skills/xlsx/scripts/office/soffice.py +0 -183
- package/.agents/skills/xlsx/scripts/office/unpack.py +0 -132
- package/.agents/skills/xlsx/scripts/office/validate.py +0 -111
- package/.agents/skills/xlsx/scripts/office/validators/__init__.py +0 -15
- package/.agents/skills/xlsx/scripts/office/validators/base.py +0 -847
- package/.agents/skills/xlsx/scripts/office/validators/docx.py +0 -446
- package/.agents/skills/xlsx/scripts/office/validators/pptx.py +0 -275
- package/.agents/skills/xlsx/scripts/office/validators/redlining.py +0 -247
- package/.agents/skills/xlsx/scripts/recalc.py +0 -184
- package/.claude/agents/code-simplifier.md +0 -52
- package/.claude/agents/codebase-analyzer.md +0 -166
- package/.claude/agents/codebase-locator.md +0 -122
- package/.claude/agents/codebase-online-researcher.md +0 -148
- package/.claude/agents/codebase-pattern-finder.md +0 -247
- package/.claude/agents/codebase-research-analyzer.md +0 -179
- package/.claude/agents/codebase-research-locator.md +0 -145
- package/.claude/agents/debugger.md +0 -91
- package/.claude/agents/orchestrator.md +0 -19
- package/.claude/agents/planner.md +0 -295
- package/.claude/agents/reviewer.md +0 -98
- package/.claude/agents/worker.md +0 -165
- package/.claude/settings.json +0 -27
- package/.github/agents/code-simplifier.md +0 -52
- package/.github/agents/codebase-analyzer.md +0 -166
- package/.github/agents/codebase-locator.md +0 -122
- package/.github/agents/codebase-online-researcher.md +0 -146
- package/.github/agents/codebase-pattern-finder.md +0 -247
- package/.github/agents/codebase-research-analyzer.md +0 -179
- package/.github/agents/codebase-research-locator.md +0 -145
- package/.github/agents/debugger.md +0 -98
- package/.github/agents/orchestrator.md +0 -27
- package/.github/agents/planner.md +0 -305
- package/.github/agents/reviewer.md +0 -95
- package/.github/agents/worker.md +0 -237
- package/.github/lsp.json +0 -93
- package/.mcp.json +0 -20
- package/.opencode/agents/code-simplifier.md +0 -62
- package/.opencode/agents/codebase-analyzer.md +0 -171
- package/.opencode/agents/codebase-locator.md +0 -127
- package/.opencode/agents/codebase-online-researcher.md +0 -152
- package/.opencode/agents/codebase-pattern-finder.md +0 -252
- package/.opencode/agents/codebase-research-analyzer.md +0 -183
- package/.opencode/agents/codebase-research-locator.md +0 -149
- package/.opencode/agents/debugger.md +0 -99
- package/.opencode/agents/orchestrator.md +0 -27
- package/.opencode/agents/planner.md +0 -309
- package/.opencode/agents/reviewer.md +0 -103
- package/.opencode/agents/worker.md +0 -165
- package/.opencode/opencode.json +0 -25
- package/README.md +0 -1624
- package/assets/settings.schema.json +0 -51
- package/dist/commands/cli/claude-inflight-hook.d.ts +0 -100
- package/dist/commands/cli/claude-inflight-hook.d.ts.map +0 -1
- package/dist/commands/cli/claude-stop-hook.d.ts +0 -80
- package/dist/commands/cli/claude-stop-hook.d.ts.map +0 -1
- package/dist/lib/atomic-temp.d.ts +0 -8
- package/dist/lib/atomic-temp.d.ts.map +0 -1
- package/dist/lib/path-root-guard.d.ts +0 -4
- package/dist/lib/path-root-guard.d.ts.map +0 -1
- package/dist/lib/spawn.d.ts +0 -102
- package/dist/lib/spawn.d.ts.map +0 -1
- package/dist/lib/terminal-env.d.ts +0 -9
- package/dist/lib/terminal-env.d.ts.map +0 -1
- package/dist/sdk/components/attached-statusline.d.ts +0 -26
- package/dist/sdk/components/attached-statusline.d.ts.map +0 -1
- package/dist/sdk/components/color-utils.d.ts +0 -4
- package/dist/sdk/components/color-utils.d.ts.map +0 -1
- package/dist/sdk/components/compact-switcher.d.ts +0 -10
- package/dist/sdk/components/compact-switcher.d.ts.map +0 -1
- package/dist/sdk/components/connectors.d.ts +0 -16
- package/dist/sdk/components/connectors.d.ts.map +0 -1
- package/dist/sdk/components/edge.d.ts +0 -4
- package/dist/sdk/components/edge.d.ts.map +0 -1
- package/dist/sdk/components/error-boundary.d.ts +0 -23
- package/dist/sdk/components/error-boundary.d.ts.map +0 -1
- package/dist/sdk/components/graph-theme.d.ts +0 -18
- package/dist/sdk/components/graph-theme.d.ts.map +0 -1
- package/dist/sdk/components/header.d.ts +0 -3
- package/dist/sdk/components/header.d.ts.map +0 -1
- package/dist/sdk/components/hooks.d.ts +0 -15
- package/dist/sdk/components/hooks.d.ts.map +0 -1
- package/dist/sdk/components/layout.d.ts +0 -27
- package/dist/sdk/components/layout.d.ts.map +0 -1
- package/dist/sdk/components/node-card.d.ts +0 -10
- package/dist/sdk/components/node-card.d.ts.map +0 -1
- package/dist/sdk/components/orchestrator-panel-contexts.d.ts +0 -16
- package/dist/sdk/components/orchestrator-panel-contexts.d.ts.map +0 -1
- package/dist/sdk/components/orchestrator-panel-store.d.ts +0 -52
- package/dist/sdk/components/orchestrator-panel-store.d.ts.map +0 -1
- package/dist/sdk/components/orchestrator-panel-types.d.ts +0 -18
- package/dist/sdk/components/orchestrator-panel-types.d.ts.map +0 -1
- package/dist/sdk/components/orchestrator-panel.d.ts +0 -86
- package/dist/sdk/components/orchestrator-panel.d.ts.map +0 -1
- package/dist/sdk/components/renderer-background.d.ts +0 -9
- package/dist/sdk/components/renderer-background.d.ts.map +0 -1
- package/dist/sdk/components/session-graph-panel.d.ts +0 -7
- package/dist/sdk/components/session-graph-panel.d.ts.map +0 -1
- package/dist/sdk/components/status-helpers.d.ts +0 -6
- package/dist/sdk/components/status-helpers.d.ts.map +0 -1
- package/dist/sdk/components/statusline.d.ts +0 -5
- package/dist/sdk/components/statusline.d.ts.map +0 -1
- package/dist/sdk/components/tui-diagnostics.d.ts +0 -56
- package/dist/sdk/components/tui-diagnostics.d.ts.map +0 -1
- package/dist/sdk/components/workflow-picker-panel.d.ts +0 -126
- package/dist/sdk/components/workflow-picker-panel.d.ts.map +0 -1
- package/dist/sdk/define-workflow.d.ts +0 -107
- package/dist/sdk/define-workflow.d.ts.map +0 -1
- package/dist/sdk/errors.d.ts +0 -46
- package/dist/sdk/errors.d.ts.map +0 -1
- package/dist/sdk/index.d.ts +0 -26
- package/dist/sdk/index.d.ts.map +0 -1
- package/dist/sdk/primitives/inputs.d.ts +0 -36
- package/dist/sdk/primitives/inputs.d.ts.map +0 -1
- package/dist/sdk/primitives/metadata.d.ts +0 -40
- package/dist/sdk/primitives/metadata.d.ts.map +0 -1
- package/dist/sdk/primitives/run.d.ts +0 -57
- package/dist/sdk/primitives/run.d.ts.map +0 -1
- package/dist/sdk/primitives/sessions.d.ts +0 -128
- package/dist/sdk/primitives/sessions.d.ts.map +0 -1
- package/dist/sdk/providers/claude.d.ts +0 -392
- package/dist/sdk/providers/claude.d.ts.map +0 -1
- package/dist/sdk/providers/copilot.d.ts +0 -55
- package/dist/sdk/providers/copilot.d.ts.map +0 -1
- package/dist/sdk/providers/opencode.d.ts +0 -27
- package/dist/sdk/providers/opencode.d.ts.map +0 -1
- package/dist/sdk/registry.d.ts +0 -27
- package/dist/sdk/registry.d.ts.map +0 -1
- package/dist/sdk/runtime/attached-footer.d.ts +0 -31
- package/dist/sdk/runtime/attached-footer.d.ts.map +0 -1
- package/dist/sdk/runtime/cc-debounce.d.ts +0 -29
- package/dist/sdk/runtime/cc-debounce.d.ts.map +0 -1
- package/dist/sdk/runtime/executor-env.d.ts +0 -20
- package/dist/sdk/runtime/executor-env.d.ts.map +0 -1
- package/dist/sdk/runtime/executor.d.ts +0 -265
- package/dist/sdk/runtime/executor.d.ts.map +0 -1
- package/dist/sdk/runtime/graph-inference.d.ts +0 -35
- package/dist/sdk/runtime/graph-inference.d.ts.map +0 -1
- package/dist/sdk/runtime/orchestrator-entry.d.ts +0 -26
- package/dist/sdk/runtime/orchestrator-entry.d.ts.map +0 -1
- package/dist/sdk/runtime/panel.d.ts +0 -9
- package/dist/sdk/runtime/panel.d.ts.map +0 -1
- package/dist/sdk/runtime/port-discovery.d.ts +0 -71
- package/dist/sdk/runtime/port-discovery.d.ts.map +0 -1
- package/dist/sdk/runtime/status-writer.d.ts +0 -101
- package/dist/sdk/runtime/status-writer.d.ts.map +0 -1
- package/dist/sdk/runtime/theme.d.ts +0 -33
- package/dist/sdk/runtime/theme.d.ts.map +0 -1
- package/dist/sdk/runtime/tmux.d.ts +0 -307
- package/dist/sdk/runtime/tmux.d.ts.map +0 -1
- package/dist/sdk/runtime/version-compat.d.ts +0 -28
- package/dist/sdk/runtime/version-compat.d.ts.map +0 -1
- package/dist/sdk/types.d.ts +0 -435
- package/dist/sdk/types.d.ts.map +0 -1
- package/dist/sdk/worker-shared.d.ts +0 -42
- package/dist/sdk/worker-shared.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/claude/index.d.ts +0 -81
- package/dist/sdk/workflows/builtin/deep-research-codebase/claude/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/copilot/index.d.ts +0 -37
- package/dist/sdk/workflows/builtin/deep-research-codebase/copilot/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/batching.d.ts +0 -43
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/batching.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/heuristic.d.ts +0 -14
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/heuristic.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/prompts.d.ts +0 -136
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/prompts.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scout.d.ts +0 -58
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scout.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scratch.d.ts +0 -43
- package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scratch.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts +0 -37
- package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/claude/index.d.ts +0 -68
- package/dist/sdk/workflows/builtin/open-claude-design/claude/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/copilot/index.d.ts +0 -56
- package/dist/sdk/workflows/builtin/open-claude-design/copilot/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/constants.d.ts +0 -72
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/constants.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/design-system.d.ts +0 -46
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/design-system.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/export.d.ts +0 -32
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/export.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/import.d.ts +0 -33
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/import.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/prompts.d.ts +0 -106
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/prompts.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/scan.d.ts +0 -50
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/scan.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/validation.d.ts +0 -12
- package/dist/sdk/workflows/builtin/open-claude-design/helpers/validation.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/open-claude-design/opencode/index.d.ts +0 -58
- package/dist/sdk/workflows/builtin/open-claude-design/opencode/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts +0 -37
- package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts +0 -34
- package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/copilot-reviewer.d.ts +0 -25
- package/dist/sdk/workflows/builtin/ralph/helpers/copilot-reviewer.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/git.d.ts +0 -69
- package/dist/sdk/workflows/builtin/ralph/helpers/git.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts +0 -266
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/review.d.ts +0 -24
- package/dist/sdk/workflows/builtin/ralph/helpers/review.d.ts.map +0 -1
- package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts +0 -33
- package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts.map +0 -1
- package/dist/sdk/workflows/index.d.ts +0 -32
- package/dist/sdk/workflows/index.d.ts.map +0 -1
- package/dist/services/config/additional-instructions.d.ts +0 -67
- package/dist/services/config/additional-instructions.d.ts.map +0 -1
- package/dist/services/config/atomic-config.d.ts +0 -42
- package/dist/services/config/atomic-config.d.ts.map +0 -1
- package/dist/services/config/definitions.d.ts +0 -52
- package/dist/services/config/definitions.d.ts.map +0 -1
- package/dist/services/config/index.d.ts +0 -7
- package/dist/services/config/index.d.ts.map +0 -1
- package/dist/services/config/scm-sync.d.ts +0 -37
- package/dist/services/config/scm-sync.d.ts.map +0 -1
- package/dist/services/config/settings-schema.d.ts +0 -2
- package/dist/services/config/settings-schema.d.ts.map +0 -1
- package/dist/services/system/copy.d.ts +0 -84
- package/dist/services/system/copy.d.ts.map +0 -1
- package/dist/services/system/detect.d.ts +0 -75
- package/dist/services/system/detect.d.ts.map +0 -1
- package/dist/theme/colors.d.ts +0 -35
- package/dist/theme/colors.d.ts.map +0 -1
- package/src/cli.ts +0 -397
- package/src/commands/builtin-registry.ts +0 -37
- package/src/commands/cli/chat/index.test.ts +0 -252
- package/src/commands/cli/chat/index.ts +0 -430
- package/src/commands/cli/chat.ts +0 -8
- package/src/commands/cli/claude-ask-hook.test.ts +0 -128
- package/src/commands/cli/claude-ask-hook.ts +0 -84
- package/src/commands/cli/claude-inflight-hook.test.ts +0 -598
- package/src/commands/cli/claude-inflight-hook.ts +0 -359
- package/src/commands/cli/claude-session-start-hook.ts +0 -61
- package/src/commands/cli/claude-stop-hook.test.ts +0 -317
- package/src/commands/cli/claude-stop-hook.ts +0 -441
- package/src/commands/cli/completions.ts +0 -24
- package/src/commands/cli/config.ts +0 -80
- package/src/commands/cli/footer.tsx +0 -248
- package/src/commands/cli/init/index.ts +0 -41
- package/src/commands/cli/init/onboarding.ts +0 -61
- package/src/commands/cli/init.ts +0 -8
- package/src/commands/cli/management-commands.ts +0 -112
- package/src/commands/cli/session.test.ts +0 -830
- package/src/commands/cli/session.ts +0 -447
- package/src/commands/cli/workflow-command.test.ts +0 -618
- package/src/commands/cli/workflow-inputs.test.ts +0 -353
- package/src/commands/cli/workflow-inputs.ts +0 -266
- package/src/commands/cli/workflow-list.test.ts +0 -235
- package/src/commands/cli/workflow-list.ts +0 -0
- package/src/commands/cli/workflow-status.test.ts +0 -451
- package/src/commands/cli/workflow-status.ts +0 -330
- package/src/commands/cli/workflow.ts +0 -196
- package/src/completions/bash.ts +0 -102
- package/src/completions/fish.ts +0 -136
- package/src/completions/index.ts +0 -7
- package/src/completions/powershell.ts +0 -195
- package/src/completions/zsh.ts +0 -150
- package/src/lib/atomic-temp.test.ts +0 -86
- package/src/lib/atomic-temp.ts +0 -62
- package/src/lib/common-ignore.ts +0 -46
- package/src/lib/merge.ts +0 -103
- package/src/lib/path-root-guard.ts +0 -38
- package/src/lib/spawn.test.ts +0 -109
- package/src/lib/spawn.ts +0 -678
- package/src/lib/terminal-env.test.ts +0 -343
- package/src/lib/terminal-env.ts +0 -100
- package/src/scripts/bump-version.ts +0 -94
- package/src/scripts/bundle-configs.ts +0 -116
- package/src/scripts/clean-dist.test.ts +0 -53
- package/src/scripts/clean-dist.ts +0 -37
- package/src/scripts/constants-base.ts +0 -14
- package/src/scripts/constants.ts +0 -35
- package/src/sdk/components/attached-statusline.tsx +0 -86
- package/src/sdk/components/color-utils.ts +0 -20
- package/src/sdk/components/compact-switcher.tsx +0 -78
- package/src/sdk/components/connectors.test.ts +0 -707
- package/src/sdk/components/connectors.ts +0 -160
- package/src/sdk/components/edge.tsx +0 -13
- package/src/sdk/components/error-boundary.tsx +0 -38
- package/src/sdk/components/graph-theme.ts +0 -37
- package/src/sdk/components/header.tsx +0 -85
- package/src/sdk/components/hooks.ts +0 -21
- package/src/sdk/components/layout.test.ts +0 -1245
- package/src/sdk/components/layout.ts +0 -223
- package/src/sdk/components/node-card.tsx +0 -91
- package/src/sdk/components/orchestrator-panel-contexts.ts +0 -35
- package/src/sdk/components/orchestrator-panel-store.test.ts +0 -847
- package/src/sdk/components/orchestrator-panel-store.ts +0 -187
- package/src/sdk/components/orchestrator-panel-types.ts +0 -23
- package/src/sdk/components/orchestrator-panel.tsx +0 -262
- package/src/sdk/components/renderer-background.ts +0 -49
- package/src/sdk/components/session-graph-panel.tsx +0 -471
- package/src/sdk/components/status-helpers.ts +0 -33
- package/src/sdk/components/statusline.tsx +0 -68
- package/src/sdk/components/tui-diagnostics.ts +0 -273
- package/src/sdk/components/workflow-picker-panel.tsx +0 -1613
- package/src/sdk/define-workflow.test.ts +0 -354
- package/src/sdk/define-workflow.ts +0 -275
- package/src/sdk/errors.test.ts +0 -83
- package/src/sdk/errors.ts +0 -77
- package/src/sdk/index.test.ts +0 -92
- package/src/sdk/index.ts +0 -101
- package/src/sdk/primitives/inputs.ts +0 -48
- package/src/sdk/primitives/metadata.ts +0 -63
- package/src/sdk/primitives/run.ts +0 -81
- package/src/sdk/primitives/sessions.test.ts +0 -594
- package/src/sdk/primitives/sessions.ts +0 -328
- package/src/sdk/providers/claude.ts +0 -1450
- package/src/sdk/providers/copilot.test.ts +0 -365
- package/src/sdk/providers/copilot.ts +0 -185
- package/src/sdk/providers/headless-hil-policy.test.ts +0 -211
- package/src/sdk/providers/opencode.ts +0 -88
- package/src/sdk/registry.ts +0 -132
- package/src/sdk/runtime/attached-footer.ts +0 -155
- package/src/sdk/runtime/cc-debounce.ts +0 -104
- package/src/sdk/runtime/executor-env.ts +0 -45
- package/src/sdk/runtime/executor.test.ts +0 -1321
- package/src/sdk/runtime/executor.ts +0 -2136
- package/src/sdk/runtime/graph-inference.ts +0 -50
- package/src/sdk/runtime/orchestrator-entry.ts +0 -110
- package/src/sdk/runtime/panel.tsx +0 -9
- package/src/sdk/runtime/port-discovery.test.ts +0 -573
- package/src/sdk/runtime/port-discovery.ts +0 -496
- package/src/sdk/runtime/status-writer.test.ts +0 -245
- package/src/sdk/runtime/status-writer.ts +0 -201
- package/src/sdk/runtime/theme.ts +0 -71
- package/src/sdk/runtime/tmux.conf +0 -112
- package/src/sdk/runtime/tmux.ts +0 -785
- package/src/sdk/runtime/version-compat.ts +0 -68
- package/src/sdk/types.ts +0 -548
- package/src/sdk/worker-shared.test.ts +0 -163
- package/src/sdk/worker-shared.ts +0 -155
- package/src/sdk/workflows/builtin/deep-research-codebase/claude/index.ts +0 -569
- package/src/sdk/workflows/builtin/deep-research-codebase/copilot/index.ts +0 -481
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/batching.ts +0 -65
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/heuristic.ts +0 -24
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/ignore-by-default.d.ts +0 -8
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/prompts.ts +0 -958
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/scout.ts +0 -505
- package/src/sdk/workflows/builtin/deep-research-codebase/helpers/scratch.ts +0 -115
- package/src/sdk/workflows/builtin/deep-research-codebase/opencode/index.ts +0 -530
- package/src/sdk/workflows/builtin/open-claude-design/claude/index.ts +0 -500
- package/src/sdk/workflows/builtin/open-claude-design/copilot/index.ts +0 -508
- package/src/sdk/workflows/builtin/open-claude-design/helpers/constants.ts +0 -159
- package/src/sdk/workflows/builtin/open-claude-design/helpers/design-system.ts +0 -88
- package/src/sdk/workflows/builtin/open-claude-design/helpers/export.ts +0 -193
- package/src/sdk/workflows/builtin/open-claude-design/helpers/import.ts +0 -52
- package/src/sdk/workflows/builtin/open-claude-design/helpers/prompts.ts +0 -1110
- package/src/sdk/workflows/builtin/open-claude-design/helpers/scan.ts +0 -117
- package/src/sdk/workflows/builtin/open-claude-design/helpers/validation.ts +0 -38
- package/src/sdk/workflows/builtin/open-claude-design/opencode/index.ts +0 -610
- package/src/sdk/workflows/builtin/ralph/claude/index.ts +0 -272
- package/src/sdk/workflows/builtin/ralph/copilot/index.ts +0 -298
- package/src/sdk/workflows/builtin/ralph/helpers/copilot-reviewer.ts +0 -105
- package/src/sdk/workflows/builtin/ralph/helpers/git.ts +0 -201
- package/src/sdk/workflows/builtin/ralph/helpers/prompts.ts +0 -1108
- package/src/sdk/workflows/builtin/ralph/helpers/review.ts +0 -33
- package/src/sdk/workflows/builtin/ralph/opencode/index.ts +0 -290
- package/src/sdk/workflows/index.ts +0 -116
- package/src/services/config/additional-instructions.ts +0 -273
- package/src/services/config/atomic-config.ts +0 -210
- package/src/services/config/atomic-global-config.ts +0 -348
- package/src/services/config/config-path.ts +0 -19
- package/src/services/config/definitions.ts +0 -125
- package/src/services/config/index.ts +0 -7
- package/src/services/config/scm-sync.ts +0 -185
- package/src/services/config/settings-schema.ts +0 -2
- package/src/services/config/settings.ts +0 -144
- package/src/services/system/agents.ts +0 -95
- package/src/services/system/auth.test.ts +0 -343
- package/src/services/system/auth.ts +0 -140
- package/src/services/system/auto-sync.ts +0 -128
- package/src/services/system/copy.ts +0 -392
- package/src/services/system/detect.ts +0 -161
- package/src/services/system/file-lock.ts +0 -289
- package/src/services/system/install-ui.ts +0 -296
- package/src/services/system/skills.ts +0 -58
- package/src/theme/colors.ts +0 -96
- package/src/theme/logo.ts +0 -123
- package/src/version.ts +0 -7
|
@@ -1,1110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Prompt builders for the open-claude-design workflow.
|
|
3
|
-
*
|
|
4
|
-
* Each builder produces a focused, single-responsibility prompt for one
|
|
5
|
-
* stage of the 5-phase design pipeline. Context-engineering principles:
|
|
6
|
-
*
|
|
7
|
-
* - Position-aware framing: key context (design prompt, design system)
|
|
8
|
-
* at the TOP and BOTTOM of every prompt.
|
|
9
|
-
* - Forward-only data flow: downstream stages embed upstream outputs
|
|
10
|
-
* verbatim — no re-discovery.
|
|
11
|
-
* - Trailing-prose guarantee: every prompt asks for a short prose recap
|
|
12
|
-
* so transcript reads never return empty.
|
|
13
|
-
* - HIL via AskUserQuestion: explicit instructions to use the tool,
|
|
14
|
-
* never regular NL conversation, for user decisions.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
DESIGN_DONTS,
|
|
19
|
-
IMPECCABLE_BANS,
|
|
20
|
-
IMPECCABLE_SCAN_CMD,
|
|
21
|
-
REFLEX_FONTS,
|
|
22
|
-
} from "./constants.ts";
|
|
23
|
-
import type { ImportContext } from "./import.ts";
|
|
24
|
-
import type { DesignSystemData } from "./design-system.ts";
|
|
25
|
-
|
|
26
|
-
// ============================================================================
|
|
27
|
-
// SHARED HELPERS
|
|
28
|
-
// ============================================================================
|
|
29
|
-
|
|
30
|
-
const TRAILING_PROSE_REMINDER =
|
|
31
|
-
"End your turn with a short prose paragraph summarizing what you produced. " +
|
|
32
|
-
"Do NOT end the turn on a tool call — downstream stages read your assistant " +
|
|
33
|
-
"transcript and will see nothing if the final message is a tool invocation.";
|
|
34
|
-
|
|
35
|
-
const HIL_INSTRUCTION =
|
|
36
|
-
"You MUST use the AskUserQuestion tool (not regular conversation) to ask " +
|
|
37
|
-
"the user for decisions. Do not proceed without the user's explicit " +
|
|
38
|
-
"response via this tool.";
|
|
39
|
-
|
|
40
|
-
/** Shell string for the `impeccable detect` CLI, e.g. for inlining in prompts. */
|
|
41
|
-
const SCAN_COMMAND_STR = IMPECCABLE_SCAN_CMD.join(" ");
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Render the full set of design rules — absolute bans, banned reflex fonts,
|
|
45
|
-
* and non-ban DON'Ts — into a single self-contained block. The agent MUST
|
|
46
|
-
* receive this content directly in the prompt because `/impeccable` skill
|
|
47
|
-
* loading is best-effort and not guaranteed.
|
|
48
|
-
*/
|
|
49
|
-
function renderDesignRules(): string {
|
|
50
|
-
const bans = IMPECCABLE_BANS.map(
|
|
51
|
-
(ban) => `- **${ban.rule}**\n ${ban.detail}`,
|
|
52
|
-
).join("\n");
|
|
53
|
-
const fonts = REFLEX_FONTS.map((f) => `\`${f}\``).join(", ");
|
|
54
|
-
const donts = DESIGN_DONTS.map((d) => `- ${d}`).join("\n");
|
|
55
|
-
return [
|
|
56
|
-
`### Absolute Bans (NEVER acceptable — rewrite the element entirely)`,
|
|
57
|
-
bans,
|
|
58
|
-
``,
|
|
59
|
-
`### Banned Reflex Fonts (training-data defaults that create monoculture)`,
|
|
60
|
-
`Every one of the following is banned. Do not use any of them, and do not`,
|
|
61
|
-
`simply pick your second-favorite — look beyond this list.`,
|
|
62
|
-
fonts,
|
|
63
|
-
``,
|
|
64
|
-
`### Design DON'Ts (AI-fingerprint patterns from 2024-2025)`,
|
|
65
|
-
donts,
|
|
66
|
-
].join("\n");
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// ============================================================================
|
|
70
|
-
// PHASE 1: DESIGN SYSTEM ONBOARDING
|
|
71
|
-
// ============================================================================
|
|
72
|
-
|
|
73
|
-
/** Phase 1 — headless: find CSS/Tailwind/design files in codebase. */
|
|
74
|
-
export function buildDesignLocatorPrompt(opts: {
|
|
75
|
-
root: string;
|
|
76
|
-
}): string {
|
|
77
|
-
return [
|
|
78
|
-
`<TASK>`,
|
|
79
|
-
`Locate all design-related files in this codebase that define or contain`,
|
|
80
|
-
`visual design tokens, styles, or theming configuration.`,
|
|
81
|
-
`</TASK>`,
|
|
82
|
-
``,
|
|
83
|
-
`<SCOPE>`,
|
|
84
|
-
`Project root: \`${opts.root}\``,
|
|
85
|
-
`</SCOPE>`,
|
|
86
|
-
``,
|
|
87
|
-
`<WHAT_TO_FIND>`,
|
|
88
|
-
`- CSS files (*.css, *.scss, *.less, *.pcss)`,
|
|
89
|
-
`- Tailwind config (tailwind.config.*, postcss.config.*)`,
|
|
90
|
-
`- CSS-in-JS theme files (theme.ts, tokens.ts, design-tokens.*)`,
|
|
91
|
-
`- CSS custom property definitions (:root { --color-*, --font-*, --space-* })`,
|
|
92
|
-
`- Component library config (chakra theme, MUI theme, shadcn components.json)`,
|
|
93
|
-
`- Global style entry points (globals.css, app.css, index.css)`,
|
|
94
|
-
`- Design system documentation (*.md files mentioning colors/fonts/spacing)`,
|
|
95
|
-
`- .impeccable.md brand context file`,
|
|
96
|
-
`- package.json (for design-related dependencies)`,
|
|
97
|
-
`</WHAT_TO_FIND>`,
|
|
98
|
-
``,
|
|
99
|
-
`<OUTPUT_FORMAT>`,
|
|
100
|
-
`Return a categorized list with absolute paths:`,
|
|
101
|
-
``,
|
|
102
|
-
`### Style Files`,
|
|
103
|
-
`- \`<path>\` — <one-line description>`,
|
|
104
|
-
``,
|
|
105
|
-
`### Theme / Token Files`,
|
|
106
|
-
`- \`<path>\` — <one-line description>`,
|
|
107
|
-
``,
|
|
108
|
-
`### Configuration`,
|
|
109
|
-
`- \`<path>\` — <one-line description>`,
|
|
110
|
-
``,
|
|
111
|
-
`### Documentation`,
|
|
112
|
-
`- \`<path>\` — <one-line description>`,
|
|
113
|
-
``,
|
|
114
|
-
`Omit empty sections.`,
|
|
115
|
-
`</OUTPUT_FORMAT>`,
|
|
116
|
-
``,
|
|
117
|
-
`<CONSTRAINTS>`,
|
|
118
|
-
`Focus on LOCATION only — do not read file contents in depth.`,
|
|
119
|
-
`Use absolute paths throughout.`,
|
|
120
|
-
TRAILING_PROSE_REMINDER,
|
|
121
|
-
`</CONSTRAINTS>`,
|
|
122
|
-
].join("\n");
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/** Phase 1 — headless: extract colors, fonts, spacing from located files. */
|
|
126
|
-
export function buildDesignAnalyzerPrompt(opts: {
|
|
127
|
-
root: string;
|
|
128
|
-
}): string {
|
|
129
|
-
return [
|
|
130
|
-
`<TASK>`,
|
|
131
|
-
`Analyze this codebase to extract existing design tokens: colors,`,
|
|
132
|
-
`typography (fonts, sizes, weights), spacing values, and border/radius`,
|
|
133
|
-
`conventions. Report concrete values found in the code.`,
|
|
134
|
-
`</TASK>`,
|
|
135
|
-
``,
|
|
136
|
-
`<SCOPE>`,
|
|
137
|
-
`Project root: \`${opts.root}\``,
|
|
138
|
-
`</SCOPE>`,
|
|
139
|
-
``,
|
|
140
|
-
`<METHOD>`,
|
|
141
|
-
`1. Search for CSS custom properties (--color-*, --font-*, --space-*, etc.)`,
|
|
142
|
-
`2. Search for Tailwind config color/font/spacing definitions`,
|
|
143
|
-
`3. Search for hardcoded hex/rgb/hsl color values in CSS/SCSS files`,
|
|
144
|
-
`4. Search for font-family declarations`,
|
|
145
|
-
`5. Search for consistent spacing patterns (margin/padding values)`,
|
|
146
|
-
`6. Search for border-radius, box-shadow, and transition patterns`,
|
|
147
|
-
`</METHOD>`,
|
|
148
|
-
``,
|
|
149
|
-
`<OUTPUT_FORMAT>`,
|
|
150
|
-
`### Colors Found`,
|
|
151
|
-
`- \`<token-name or context>\`: <value> — used in <file:line>`,
|
|
152
|
-
``,
|
|
153
|
-
`### Typography Found`,
|
|
154
|
-
`- Font families: <list with file:line refs>`,
|
|
155
|
-
`- Font sizes: <list with file:line refs>`,
|
|
156
|
-
`- Font weights: <list with file:line refs>`,
|
|
157
|
-
``,
|
|
158
|
-
`### Spacing Found`,
|
|
159
|
-
`- Common values: <list with file:line refs>`,
|
|
160
|
-
`- Base unit (if detectable): <value>`,
|
|
161
|
-
``,
|
|
162
|
-
`### Other Tokens`,
|
|
163
|
-
`- Border radius: <values>`,
|
|
164
|
-
`- Box shadows: <values>`,
|
|
165
|
-
`- Transitions: <values>`,
|
|
166
|
-
``,
|
|
167
|
-
`Omit empty sections. Use file:line references for every value.`,
|
|
168
|
-
`</OUTPUT_FORMAT>`,
|
|
169
|
-
``,
|
|
170
|
-
`<CONSTRAINTS>`,
|
|
171
|
-
`Report what EXISTS — do not suggest improvements or alternatives.`,
|
|
172
|
-
`Extract concrete values, not abstractions.`,
|
|
173
|
-
TRAILING_PROSE_REMINDER,
|
|
174
|
-
`</CONSTRAINTS>`,
|
|
175
|
-
].join("\n");
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/** Phase 1 — headless: find existing component patterns in the codebase. */
|
|
179
|
-
export function buildDesignPatternPrompt(opts: {
|
|
180
|
-
root: string;
|
|
181
|
-
}): string {
|
|
182
|
-
return [
|
|
183
|
-
`<TASK>`,
|
|
184
|
-
`Find existing UI component patterns in this codebase. Identify reusable`,
|
|
185
|
-
`components, their variants, and how they are currently styled.`,
|
|
186
|
-
`</TASK>`,
|
|
187
|
-
``,
|
|
188
|
-
`<SCOPE>`,
|
|
189
|
-
`Project root: \`${opts.root}\``,
|
|
190
|
-
`</SCOPE>`,
|
|
191
|
-
``,
|
|
192
|
-
`<WHAT_TO_FIND>`,
|
|
193
|
-
`1. Button components and their variants (primary, secondary, ghost, etc.)`,
|
|
194
|
-
`2. Card / container patterns`,
|
|
195
|
-
`3. Input / form elements`,
|
|
196
|
-
`4. Navigation components (navbar, sidebar, tabs)`,
|
|
197
|
-
`5. Layout patterns (grid, flex, container widths)`,
|
|
198
|
-
`6. Modal / dialog patterns`,
|
|
199
|
-
`7. Table / list patterns`,
|
|
200
|
-
`8. Any component library usage (shadcn, radix, chakra, MUI, etc.)`,
|
|
201
|
-
`</WHAT_TO_FIND>`,
|
|
202
|
-
``,
|
|
203
|
-
`<OUTPUT_FORMAT>`,
|
|
204
|
-
`For each component pattern found:`,
|
|
205
|
-
``,
|
|
206
|
-
`#### <Component Name>`,
|
|
207
|
-
`**Where:** \`<file:line>\``,
|
|
208
|
-
`**Variants:** <list of variants if any>`,
|
|
209
|
-
`**Styling approach:** <CSS modules / Tailwind / styled-components / etc.>`,
|
|
210
|
-
`**Key visual properties:** <colors, sizes, borders used>`,
|
|
211
|
-
``,
|
|
212
|
-
`Aim for 5-10 distinct patterns. Skip trivial or one-off components.`,
|
|
213
|
-
`</OUTPUT_FORMAT>`,
|
|
214
|
-
``,
|
|
215
|
-
`<CONSTRAINTS>`,
|
|
216
|
-
`Document what EXISTS — do not propose new components.`,
|
|
217
|
-
`Use file:line references for every claim.`,
|
|
218
|
-
TRAILING_PROSE_REMINDER,
|
|
219
|
-
`</CONSTRAINTS>`,
|
|
220
|
-
].join("\n");
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Phase 1 — visible, HIL: present findings and build Design.md with
|
|
225
|
-
* user approval at each decision point.
|
|
226
|
-
*/
|
|
227
|
-
export function buildDesignSystemBuilderPrompt(opts: {
|
|
228
|
-
root: string;
|
|
229
|
-
locatorOutput: string;
|
|
230
|
-
analyzerOutput: string;
|
|
231
|
-
patternsOutput: string;
|
|
232
|
-
existingImpeccable: string;
|
|
233
|
-
}): string {
|
|
234
|
-
const impeccableSection =
|
|
235
|
-
opts.existingImpeccable.trim().length > 0
|
|
236
|
-
? `<EXISTING_BRAND_CONTEXT>
|
|
237
|
-
The project has an existing .impeccable.md brand context file:
|
|
238
|
-
|
|
239
|
-
${opts.existingImpeccable.trim()}
|
|
240
|
-
</EXISTING_BRAND_CONTEXT>`
|
|
241
|
-
: `<EXISTING_BRAND_CONTEXT>
|
|
242
|
-
No .impeccable.md file found. You will build the design system from scratch
|
|
243
|
-
using the codebase analysis below.
|
|
244
|
-
</EXISTING_BRAND_CONTEXT>`;
|
|
245
|
-
|
|
246
|
-
return [
|
|
247
|
-
`<TASK>`,
|
|
248
|
-
`You are a design system builder. Three specialist sub-agents have analyzed`,
|
|
249
|
-
`the codebase for design tokens and patterns. Your job is to present their`,
|
|
250
|
-
`findings to the user, get approval for each design element category via`,
|
|
251
|
-
`the AskUserQuestion tool, and then write a structured Design.md file.`,
|
|
252
|
-
`</TASK>`,
|
|
253
|
-
``,
|
|
254
|
-
impeccableSection,
|
|
255
|
-
``,
|
|
256
|
-
`<CODEBASE_ANALYSIS>`,
|
|
257
|
-
``,
|
|
258
|
-
`### Design File Locations`,
|
|
259
|
-
opts.locatorOutput.trim() || "(no design files found)",
|
|
260
|
-
``,
|
|
261
|
-
`### Extracted Design Tokens`,
|
|
262
|
-
opts.analyzerOutput.trim() || "(no tokens extracted)",
|
|
263
|
-
``,
|
|
264
|
-
`### Component Patterns`,
|
|
265
|
-
opts.patternsOutput.trim() || "(no patterns found)",
|
|
266
|
-
``,
|
|
267
|
-
`</CODEBASE_ANALYSIS>`,
|
|
268
|
-
``,
|
|
269
|
-
`<PROCESS>`,
|
|
270
|
-
``,
|
|
271
|
-
`${HIL_INSTRUCTION}`,
|
|
272
|
-
``,
|
|
273
|
-
`Follow these steps in order:`,
|
|
274
|
-
``,
|
|
275
|
-
`**Step 1 — Colors:** Present the colors found in the codebase analysis.`,
|
|
276
|
-
`Use AskUserQuestion to ask: "Here are the colors I found in your codebase.`,
|
|
277
|
-
`Which should be part of your design system?"`,
|
|
278
|
-
`Provide options: ["Approve these colors", "Modify colors", "Start from scratch"]`,
|
|
279
|
-
`If "Modify" or "Start from scratch", follow up with another AskUserQuestion.`,
|
|
280
|
-
``,
|
|
281
|
-
`**Step 2 — Typography:** Present the font families and scale found.`,
|
|
282
|
-
`Use AskUserQuestion to ask about the primary font stack.`,
|
|
283
|
-
`Provide options based on what was found, plus "Suggest alternatives".`,
|
|
284
|
-
``,
|
|
285
|
-
`**Step 3 — Spacing:** Present the spacing values found.`,
|
|
286
|
-
`Use AskUserQuestion to ask: "Which spacing base unit should I use?"`,
|
|
287
|
-
`Provide options: ["4pt base", "8pt base", "Keep existing values"]`,
|
|
288
|
-
``,
|
|
289
|
-
`**Step 4 — Components:** Present the component patterns found.`,
|
|
290
|
-
`Briefly summarize — no AskUserQuestion needed for this step.`,
|
|
291
|
-
``,
|
|
292
|
-
`**Step 5 — Final Approval:** Write the complete Design.md file content,`,
|
|
293
|
-
`then use AskUserQuestion to ask: "Here is your complete design system.`,
|
|
294
|
-
`Approve or request changes?"`,
|
|
295
|
-
`Provide options: ["Approve Design.md", "Request changes"]`,
|
|
296
|
-
`If "Request changes", iterate until approved.`,
|
|
297
|
-
``,
|
|
298
|
-
`**Step 6 — Write File:** Once approved, write the Design.md file to:`,
|
|
299
|
-
`\`${opts.root}/Design.md\``,
|
|
300
|
-
``,
|
|
301
|
-
`</PROCESS>`,
|
|
302
|
-
``,
|
|
303
|
-
`<DESIGN_MD_FORMAT>`,
|
|
304
|
-
`The Design.md file MUST follow this exact structure:`,
|
|
305
|
-
``,
|
|
306
|
-
"```markdown",
|
|
307
|
-
`# Design System — [Project Name]`,
|
|
308
|
-
``,
|
|
309
|
-
`## Colors`,
|
|
310
|
-
`### Primary`,
|
|
311
|
-
`- \`--color-primary\`: <value>`,
|
|
312
|
-
`### Neutral`,
|
|
313
|
-
`- \`--color-bg\`: <value>`,
|
|
314
|
-
`### Semantic`,
|
|
315
|
-
`- \`--color-success\`: <value>`,
|
|
316
|
-
``,
|
|
317
|
-
`## Typography`,
|
|
318
|
-
`### Font Stack`,
|
|
319
|
-
`- Primary: <font-family>`,
|
|
320
|
-
`- Monospace: <font-family>`,
|
|
321
|
-
`### Scale`,
|
|
322
|
-
`- \`--text-xs\`: <value>`,
|
|
323
|
-
``,
|
|
324
|
-
`## Spacing`,
|
|
325
|
-
`### Base Unit: <value>`,
|
|
326
|
-
`- \`--space-1\`: <value>`,
|
|
327
|
-
``,
|
|
328
|
-
`## Components`,
|
|
329
|
-
`### Identified Patterns`,
|
|
330
|
-
`- <Component> (<variants>)`,
|
|
331
|
-
``,
|
|
332
|
-
`## Anti-Patterns (from impeccable)`,
|
|
333
|
-
`### Absolute Bans`,
|
|
334
|
-
`- NO side-stripe borders (border-left/right > 1px as accent, any color)`,
|
|
335
|
-
`- NO gradient text (background-clip: text with gradient)`,
|
|
336
|
-
``,
|
|
337
|
-
`### Banned Reflex Fonts`,
|
|
338
|
-
`- Every font in the impeccable reflex-fonts list is banned (Inter, DM Sans,`,
|
|
339
|
-
` Fraunces, Playfair Display, IBM Plex, Space Grotesk, Plus Jakarta Sans,`,
|
|
340
|
-
` Outfit, Instrument Sans/Serif, Lora, Crimson*, Newsreader, Syne,`,
|
|
341
|
-
` Cormorant*, Space Mono, DM Serif Display/Text).`,
|
|
342
|
-
``,
|
|
343
|
-
`### Design DON'Ts`,
|
|
344
|
-
`- NO AI color palette (cyan-on-dark, purple-to-blue, neon-on-dark)`,
|
|
345
|
-
`- NO pure #000 or #fff — tint toward the brand hue`,
|
|
346
|
-
`- NO cards-in-cards, identical card grids, or hero-metric template`,
|
|
347
|
-
`- NO animated layout properties; transform/opacity only; no bounce/elastic`,
|
|
348
|
-
``,
|
|
349
|
-
`## Brand Context (from .impeccable.md)`,
|
|
350
|
-
`[Embedded if available]`,
|
|
351
|
-
"```",
|
|
352
|
-
`</DESIGN_MD_FORMAT>`,
|
|
353
|
-
``,
|
|
354
|
-
`<CONSTRAINTS>`,
|
|
355
|
-
`- Use AskUserQuestion for EVERY decision point (Steps 1-3, 5).`,
|
|
356
|
-
`- Do NOT skip any step or auto-approve on the user's behalf.`,
|
|
357
|
-
`- Include the full Anti-Patterns section (absolute bans + reflex fonts + DON'Ts).`,
|
|
358
|
-
`- If no existing tokens are found, propose reasonable defaults and confirm with user.`,
|
|
359
|
-
TRAILING_PROSE_REMINDER,
|
|
360
|
-
`</CONSTRAINTS>`,
|
|
361
|
-
].join("\n");
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
// ============================================================================
|
|
365
|
-
// PHASE 2: IMPORT
|
|
366
|
-
// ============================================================================
|
|
367
|
-
|
|
368
|
-
/** Phase 2 — headless: navigate URL, screenshot, extract DOM/CSS. */
|
|
369
|
-
export function buildWebCapturePrompt(opts: {
|
|
370
|
-
url: string;
|
|
371
|
-
screenshotDir: string;
|
|
372
|
-
}): string {
|
|
373
|
-
return [
|
|
374
|
-
`<TASK>`,
|
|
375
|
-
`Navigate to the URL below, take a screenshot, and extract the key visual`,
|
|
376
|
-
`design elements (layout, colors, typography, component patterns) as a`,
|
|
377
|
-
`structured reference for generating a new design.`,
|
|
378
|
-
`</TASK>`,
|
|
379
|
-
``,
|
|
380
|
-
`<URL>${opts.url}</URL>`,
|
|
381
|
-
``,
|
|
382
|
-
`<METHOD>`,
|
|
383
|
-
`1. Use playwright-cli to navigate to the URL.`,
|
|
384
|
-
`2. Take a full-page screenshot and save it to: \`${opts.screenshotDir}/reference.png\``,
|
|
385
|
-
`3. Extract the page's visual design characteristics:`,
|
|
386
|
-
` - Overall layout structure (grid, sidebar, header, etc.)`,
|
|
387
|
-
` - Color scheme (primary, accent, background, text colors)`,
|
|
388
|
-
` - Typography (font families, sizes visible)`,
|
|
389
|
-
` - Key component patterns (buttons, cards, inputs, navigation)`,
|
|
390
|
-
` - Spacing and visual rhythm`,
|
|
391
|
-
`4. If the page has multiple views/states, capture the most representative one.`,
|
|
392
|
-
`</METHOD>`,
|
|
393
|
-
``,
|
|
394
|
-
`<OUTPUT_FORMAT>`,
|
|
395
|
-
`### Layout`,
|
|
396
|
-
`<description of overall structure>`,
|
|
397
|
-
``,
|
|
398
|
-
`### Visual Style`,
|
|
399
|
-
`- Colors: <observed color palette>`,
|
|
400
|
-
`- Typography: <observed fonts and sizes>`,
|
|
401
|
-
`- Spacing: <observed rhythm>`,
|
|
402
|
-
``,
|
|
403
|
-
`### Key Components`,
|
|
404
|
-
`- <component>: <description>`,
|
|
405
|
-
``,
|
|
406
|
-
`### Screenshot`,
|
|
407
|
-
`Saved to: \`${opts.screenshotDir}/reference.png\``,
|
|
408
|
-
`</OUTPUT_FORMAT>`,
|
|
409
|
-
``,
|
|
410
|
-
`<CONSTRAINTS>`,
|
|
411
|
-
`Focus on extractable design patterns, not content.`,
|
|
412
|
-
`If the URL fails to load, report the error and continue with whatever partial info is available.`,
|
|
413
|
-
TRAILING_PROSE_REMINDER,
|
|
414
|
-
`</CONSTRAINTS>`,
|
|
415
|
-
].join("\n");
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
/** Phase 2 — headless: parse document reference (DOCX/PPTX/XLSX/image/PDF). */
|
|
419
|
-
export function buildFileParserPrompt(opts: {
|
|
420
|
-
filePath: string;
|
|
421
|
-
}): string {
|
|
422
|
-
return [
|
|
423
|
-
`<TASK>`,
|
|
424
|
-
`Parse the reference document below and extract design-relevant information`,
|
|
425
|
-
`(visual specs, wireframes, mockup descriptions, brand guidelines, color`,
|
|
426
|
-
`palettes, typography specs) that can inform design generation.`,
|
|
427
|
-
`</TASK>`,
|
|
428
|
-
``,
|
|
429
|
-
`<FILE>${opts.filePath}</FILE>`,
|
|
430
|
-
``,
|
|
431
|
-
`<METHOD>`,
|
|
432
|
-
`1. Read the file using the appropriate tool (Read for text/markdown/images,`,
|
|
433
|
-
` liteparse for DOCX/PPTX/XLSX/PDF).`,
|
|
434
|
-
`2. Extract design-relevant content:`,
|
|
435
|
-
` - Color specifications or palettes`,
|
|
436
|
-
` - Typography preferences`,
|
|
437
|
-
` - Layout descriptions or wireframes`,
|
|
438
|
-
` - Component requirements`,
|
|
439
|
-
` - Brand guidelines or constraints`,
|
|
440
|
-
` - Any visual mockup descriptions`,
|
|
441
|
-
`3. Ignore non-design content (business logic, data models, etc.)`,
|
|
442
|
-
`</METHOD>`,
|
|
443
|
-
``,
|
|
444
|
-
`<OUTPUT_FORMAT>`,
|
|
445
|
-
`### Design Requirements Extracted`,
|
|
446
|
-
`<bulleted list of design-relevant requirements>`,
|
|
447
|
-
``,
|
|
448
|
-
`### Visual Specifications`,
|
|
449
|
-
`<any specific colors, fonts, sizes mentioned>`,
|
|
450
|
-
``,
|
|
451
|
-
`### Layout Requirements`,
|
|
452
|
-
`<any layout or structural requirements>`,
|
|
453
|
-
``,
|
|
454
|
-
`If the file contains no design-relevant information, say so explicitly.`,
|
|
455
|
-
`</OUTPUT_FORMAT>`,
|
|
456
|
-
``,
|
|
457
|
-
`<CONSTRAINTS>`,
|
|
458
|
-
`Extract only design-relevant information.`,
|
|
459
|
-
`Do not fabricate specifications not present in the document.`,
|
|
460
|
-
TRAILING_PROSE_REMINDER,
|
|
461
|
-
`</CONSTRAINTS>`,
|
|
462
|
-
].join("\n");
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
// ============================================================================
|
|
466
|
-
// PHASE 3: GENERATION
|
|
467
|
-
// ============================================================================
|
|
468
|
-
|
|
469
|
-
/** Phase 3 — visible: generate first design version. */
|
|
470
|
-
export function buildGeneratorPrompt(opts: {
|
|
471
|
-
prompt: string;
|
|
472
|
-
outputType: string;
|
|
473
|
-
designSystem: DesignSystemData;
|
|
474
|
-
importContext: ImportContext;
|
|
475
|
-
root: string;
|
|
476
|
-
outputDir: string;
|
|
477
|
-
}): string {
|
|
478
|
-
const referenceSection =
|
|
479
|
-
opts.importContext.webCapture || opts.importContext.fileParse
|
|
480
|
-
? `<REFERENCE_CONTEXT>
|
|
481
|
-
${opts.importContext.webCapture ? `### Web Reference\n${opts.importContext.webCapture}\n` : ""}
|
|
482
|
-
${opts.importContext.fileParse ? `### File Reference\n${opts.importContext.fileParse}\n` : ""}
|
|
483
|
-
</REFERENCE_CONTEXT>`
|
|
484
|
-
: "";
|
|
485
|
-
|
|
486
|
-
const outputTypeInstructions: Record<string, string> = {
|
|
487
|
-
prototype: `Generate a fully interactive HTML/CSS/JS application with multiple views/screens,
|
|
488
|
-
working navigation, real interactions (clicks, hovers, form submissions), and state
|
|
489
|
-
changes. Full visual fidelity with design system tokens applied.`,
|
|
490
|
-
|
|
491
|
-
wireframe: `Generate a low-fidelity structural layout with boxes, placeholder text, and visual
|
|
492
|
-
hierarchy WITHOUT polish. Use grayscale, minimal styling. Focus on information
|
|
493
|
-
architecture. Run the /shape skill first to produce a design brief before generating.`,
|
|
494
|
-
|
|
495
|
-
page: `Generate a single, fully designed page at full fidelity (colors, typography, spacing
|
|
496
|
-
from Design.md). No multi-screen navigation or complex state. One screen, fully polished.`,
|
|
497
|
-
|
|
498
|
-
component: `Generate a single reusable UI element rendered as a component showcase with multiple
|
|
499
|
-
variants and interactive states. Show the component in isolation with different sizes,
|
|
500
|
-
colors, and states (default, hover, active, disabled, etc.).`,
|
|
501
|
-
};
|
|
502
|
-
|
|
503
|
-
return [
|
|
504
|
-
`<DESIGN_REQUEST>`,
|
|
505
|
-
opts.prompt,
|
|
506
|
-
`</DESIGN_REQUEST>`,
|
|
507
|
-
``,
|
|
508
|
-
`<OUTPUT_TYPE>`,
|
|
509
|
-
`You are generating a **${opts.outputType}**.`,
|
|
510
|
-
``,
|
|
511
|
-
outputTypeInstructions[opts.outputType] ?? outputTypeInstructions.prototype,
|
|
512
|
-
`</OUTPUT_TYPE>`,
|
|
513
|
-
``,
|
|
514
|
-
`<DESIGN_SYSTEM>`,
|
|
515
|
-
opts.designSystem.raw,
|
|
516
|
-
`</DESIGN_SYSTEM>`,
|
|
517
|
-
``,
|
|
518
|
-
referenceSection,
|
|
519
|
-
``,
|
|
520
|
-
`<GENERATION_INSTRUCTIONS>`,
|
|
521
|
-
``,
|
|
522
|
-
`1. The design rules below are INLINED and authoritative — you do not need`,
|
|
523
|
-
` to load the /impeccable skill for correctness. If /impeccable is`,
|
|
524
|
-
` available it is optional supplementary context only.`,
|
|
525
|
-
`2. ${opts.outputType === "wireframe" ? "Run /shape first to produce a design brief, then generate based on that brief." : "Generate the design directly based on the design request and design system."}`,
|
|
526
|
-
`3. Write all generated files to: \`${opts.outputDir}/\``,
|
|
527
|
-
` - \`${opts.outputDir}/index.html\` — Main HTML file`,
|
|
528
|
-
` - \`${opts.outputDir}/styles.css\` — All CSS styles`,
|
|
529
|
-
` - \`${opts.outputDir}/script.js\` — All JavaScript (if needed)`,
|
|
530
|
-
`4. Apply ALL design system tokens from the <DESIGN_SYSTEM> section above.`,
|
|
531
|
-
` Use CSS custom properties for every color, font, and spacing value.`,
|
|
532
|
-
`5. Follow ALL design rules below — absolute bans, banned fonts, DON'Ts.`,
|
|
533
|
-
`6. Your output WILL be scanned with \`${SCAN_COMMAND_STR} ${opts.outputDir}\``,
|
|
534
|
-
` before export. Any finding from the scanner blocks export, so avoid`,
|
|
535
|
-
` the banned patterns preemptively rather than risk a rework loop.`,
|
|
536
|
-
``,
|
|
537
|
-
`</GENERATION_INSTRUCTIONS>`,
|
|
538
|
-
``,
|
|
539
|
-
`<DESIGN_RULES>`,
|
|
540
|
-
renderDesignRules(),
|
|
541
|
-
`</DESIGN_RULES>`,
|
|
542
|
-
``,
|
|
543
|
-
`<QUALITY_REQUIREMENTS>`,
|
|
544
|
-
`- Semantic HTML (proper heading hierarchy, landmarks, ARIA where needed)`,
|
|
545
|
-
`- CSS custom properties for all design tokens (--color-*, --font-*, --space-*)`,
|
|
546
|
-
`- Mobile-first responsive design`,
|
|
547
|
-
`- Self-contained: all CSS inline or in styles.css, all JS in script.js`,
|
|
548
|
-
`- No external CDN dependencies — everything must work offline`,
|
|
549
|
-
`- The HTML file must be openable directly in a browser`,
|
|
550
|
-
`</QUALITY_REQUIREMENTS>`,
|
|
551
|
-
``,
|
|
552
|
-
`<CONSTRAINTS>`,
|
|
553
|
-
`Write the actual files — do not just describe what you would create.`,
|
|
554
|
-
`Apply the design system tokens from Design.md — do not invent new colors/fonts.`,
|
|
555
|
-
TRAILING_PROSE_REMINDER,
|
|
556
|
-
`</CONSTRAINTS>`,
|
|
557
|
-
``,
|
|
558
|
-
`<DESIGN_REQUEST_REMINDER>`,
|
|
559
|
-
opts.prompt,
|
|
560
|
-
`</DESIGN_REQUEST_REMINDER>`,
|
|
561
|
-
].join("\n");
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
// ============================================================================
|
|
565
|
-
// PHASE 4: REFINEMENT LOOP
|
|
566
|
-
// ============================================================================
|
|
567
|
-
|
|
568
|
-
/** Phase 4 — visible, HIL: collect user feedback on the current design. */
|
|
569
|
-
export function buildRefineFeedbackPrompt(opts: {
|
|
570
|
-
prompt: string;
|
|
571
|
-
designDir: string;
|
|
572
|
-
iteration: number;
|
|
573
|
-
maxIterations: number;
|
|
574
|
-
}): string {
|
|
575
|
-
return [
|
|
576
|
-
`<TASK>`,
|
|
577
|
-
`You are collecting user feedback on the current design iteration.`,
|
|
578
|
-
`This is iteration ${opts.iteration} of ${opts.maxIterations}.`,
|
|
579
|
-
`</TASK>`,
|
|
580
|
-
``,
|
|
581
|
-
`<DESIGN_LOCATION>`,
|
|
582
|
-
`The current design files are at: \`${opts.designDir}/\``,
|
|
583
|
-
`- \`${opts.designDir}/index.html\``,
|
|
584
|
-
`- \`${opts.designDir}/styles.css\``,
|
|
585
|
-
`- \`${opts.designDir}/script.js\``,
|
|
586
|
-
`</DESIGN_LOCATION>`,
|
|
587
|
-
``,
|
|
588
|
-
`<PROCESS>`,
|
|
589
|
-
``,
|
|
590
|
-
`${HIL_INSTRUCTION}`,
|
|
591
|
-
``,
|
|
592
|
-
`1. FIRST — before any tool call such as ToolSearch or AskUserQuestion —`,
|
|
593
|
-
` output a plaintext summary (2-4 sentences) covering what was generated`,
|
|
594
|
-
` or changed in this iteration and reminding the user they can open`,
|
|
595
|
-
` \`${opts.designDir}/index.html\` in a browser to preview. This`,
|
|
596
|
-
` plaintext block MUST appear in your response before you invoke any tools.`,
|
|
597
|
-
`2. THEN use AskUserQuestion to ask: "How would you like to proceed?"`,
|
|
598
|
-
` Provide these options:`,
|
|
599
|
-
` - "Approve and export" — finalize the design and create handoff bundle`,
|
|
600
|
-
` - "Request specific changes" — describe what to modify`,
|
|
601
|
-
` - "Run full critique" — automated design quality analysis`,
|
|
602
|
-
` - "Start over" — regenerate from scratch`,
|
|
603
|
-
`3. If the user selects "Request specific changes", capture their feedback`,
|
|
604
|
-
` using a follow-up AskUserQuestion with free-text input.`,
|
|
605
|
-
`4. Echo back the user's choice and feedback clearly.`,
|
|
606
|
-
``,
|
|
607
|
-
`If the user chose "Approve and export", include the phrase "user approved"`,
|
|
608
|
-
`in your response so the workflow can detect completion.`,
|
|
609
|
-
`</PROCESS>`,
|
|
610
|
-
``,
|
|
611
|
-
`<ORIGINAL_REQUEST>`,
|
|
612
|
-
opts.prompt,
|
|
613
|
-
`</ORIGINAL_REQUEST>`,
|
|
614
|
-
``,
|
|
615
|
-
`<CONSTRAINTS>`,
|
|
616
|
-
`- Do NOT make any changes to the design files yourself.`,
|
|
617
|
-
`- Do NOT skip the AskUserQuestion — the user MUST choose.`,
|
|
618
|
-
`- Keep your summary brief (2-3 sentences).`,
|
|
619
|
-
TRAILING_PROSE_REMINDER,
|
|
620
|
-
`</CONSTRAINTS>`,
|
|
621
|
-
].join("\n");
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
/** Phase 4 — headless: automated design critique with structured output. */
|
|
625
|
-
export function buildCritiquePrompt(opts: {
|
|
626
|
-
designDir: string;
|
|
627
|
-
designSystem: DesignSystemData;
|
|
628
|
-
userFeedback: string;
|
|
629
|
-
}): string {
|
|
630
|
-
return [
|
|
631
|
-
`<TASK>`,
|
|
632
|
-
`Perform a comprehensive design critique of the generated design files.`,
|
|
633
|
-
`Combine automated scanning with design review expertise.`,
|
|
634
|
-
`</TASK>`,
|
|
635
|
-
``,
|
|
636
|
-
`<DESIGN_LOCATION>`,
|
|
637
|
-
`\`${opts.designDir}/index.html\``,
|
|
638
|
-
`\`${opts.designDir}/styles.css\``,
|
|
639
|
-
`\`${opts.designDir}/script.js\``,
|
|
640
|
-
`</DESIGN_LOCATION>`,
|
|
641
|
-
``,
|
|
642
|
-
`<DESIGN_SYSTEM>`,
|
|
643
|
-
opts.designSystem.raw,
|
|
644
|
-
`</DESIGN_SYSTEM>`,
|
|
645
|
-
``,
|
|
646
|
-
`<USER_FEEDBACK>`,
|
|
647
|
-
opts.userFeedback.trim() || "(no specific user feedback)",
|
|
648
|
-
`</USER_FEEDBACK>`,
|
|
649
|
-
``,
|
|
650
|
-
`<CRITIQUE_METHOD>`,
|
|
651
|
-
``,
|
|
652
|
-
`**Assessment A — Design Review (LLM analysis):**`,
|
|
653
|
-
`1. Read all three design files in full.`,
|
|
654
|
-
`2. Check design system compliance: are Design.md tokens actually used?`,
|
|
655
|
-
`3. Check visual hierarchy, layout balance, and information architecture.`,
|
|
656
|
-
`4. Check every rule below. Each violation is a P0 finding:`,
|
|
657
|
-
renderDesignRules(),
|
|
658
|
-
`5. Check accessibility basics (contrast, semantic HTML, ARIA).`,
|
|
659
|
-
`6. Check responsiveness (media queries, flexible layouts).`,
|
|
660
|
-
`7. Address any specific points from the user feedback above.`,
|
|
661
|
-
``,
|
|
662
|
-
`**Assessment B — Automated scanning (informational):**`,
|
|
663
|
-
`Note: the orchestrator runs \`${SCAN_COMMAND_STR} ${opts.designDir}\``,
|
|
664
|
-
`deterministically after this stage, and its findings gate the export. You`,
|
|
665
|
-
`do not need to run the scanner yourself, but if you do, treat any finding`,
|
|
666
|
-
`(non-empty JSON array) as a P0 issue to remove.`,
|
|
667
|
-
``,
|
|
668
|
-
`</CRITIQUE_METHOD>`,
|
|
669
|
-
``,
|
|
670
|
-
`<OUTPUT_FORMAT>`,
|
|
671
|
-
`Report findings with P0-P3 severity:`,
|
|
672
|
-
``,
|
|
673
|
-
`### P0 — Critical (must fix before export)`,
|
|
674
|
-
`- <finding with file:line reference>`,
|
|
675
|
-
``,
|
|
676
|
-
`### P1 — Important`,
|
|
677
|
-
`- <finding>`,
|
|
678
|
-
``,
|
|
679
|
-
`### P2 — Moderate`,
|
|
680
|
-
`- <finding>`,
|
|
681
|
-
``,
|
|
682
|
-
`### P3 — Minor (informational)`,
|
|
683
|
-
`- <finding>`,
|
|
684
|
-
``,
|
|
685
|
-
`### User Feedback Alignment`,
|
|
686
|
-
`- <how well the current design addresses user feedback>`,
|
|
687
|
-
``,
|
|
688
|
-
`### Scanner Results`,
|
|
689
|
-
`- <results from npx impeccable --json, or "scanner not available">`,
|
|
690
|
-
``,
|
|
691
|
-
`Omit empty severity sections.`,
|
|
692
|
-
`</OUTPUT_FORMAT>`,
|
|
693
|
-
``,
|
|
694
|
-
`<CONSTRAINTS>`,
|
|
695
|
-
`Be specific — cite file:line for every finding.`,
|
|
696
|
-
`Prioritize user feedback alignment over general design critique.`,
|
|
697
|
-
TRAILING_PROSE_REMINDER,
|
|
698
|
-
`</CONSTRAINTS>`,
|
|
699
|
-
].join("\n");
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
/** Phase 4 — headless: visual validation via playwright screenshot. */
|
|
703
|
-
export function buildScreenshotValidationPrompt(opts: {
|
|
704
|
-
designDir: string;
|
|
705
|
-
scratchDir: string;
|
|
706
|
-
}): string {
|
|
707
|
-
return [
|
|
708
|
-
`<TASK>`,
|
|
709
|
-
`Render the generated design in a browser via playwright and take a`,
|
|
710
|
-
`screenshot for visual validation. Describe what you see.`,
|
|
711
|
-
`</TASK>`,
|
|
712
|
-
``,
|
|
713
|
-
`<DESIGN_FILE>`,
|
|
714
|
-
`\`${opts.designDir}/index.html\``,
|
|
715
|
-
`</DESIGN_FILE>`,
|
|
716
|
-
``,
|
|
717
|
-
`<METHOD>`,
|
|
718
|
-
`1. Use playwright-cli to open \`${opts.designDir}/index.html\` as a local file.`,
|
|
719
|
-
`2. Set viewport to 1280x800 (standard desktop).`,
|
|
720
|
-
`3. Wait for the page to fully render (fonts, animations, etc.).`,
|
|
721
|
-
`4. Take a screenshot and save to: \`${opts.scratchDir}/screenshot-validation.png\``,
|
|
722
|
-
`5. If the page has interactive elements, take a second screenshot after`,
|
|
723
|
-
` hovering over the primary CTA button (if present).`,
|
|
724
|
-
`6. Describe what you observe visually:`,
|
|
725
|
-
` - Does the layout render correctly?`,
|
|
726
|
-
` - Are there any visual glitches, overflow issues, or broken layouts?`,
|
|
727
|
-
` - Do colors and typography look intentional?`,
|
|
728
|
-
` - Is there enough contrast for readability?`,
|
|
729
|
-
` - Any elements that appear AI-generated or generic?`,
|
|
730
|
-
`</METHOD>`,
|
|
731
|
-
``,
|
|
732
|
-
`<OUTPUT_FORMAT>`,
|
|
733
|
-
`### Render Status`,
|
|
734
|
-
`<success/failure, any console errors>`,
|
|
735
|
-
``,
|
|
736
|
-
`### Visual Assessment`,
|
|
737
|
-
`- Layout: <assessment>`,
|
|
738
|
-
`- Colors: <assessment>`,
|
|
739
|
-
`- Typography: <assessment>`,
|
|
740
|
-
`- Spacing: <assessment>`,
|
|
741
|
-
`- Interactions: <assessment if applicable>`,
|
|
742
|
-
``,
|
|
743
|
-
`### Issues Found`,
|
|
744
|
-
`- <issue description>`,
|
|
745
|
-
``,
|
|
746
|
-
`### Screenshot`,
|
|
747
|
-
`Saved to: \`${opts.scratchDir}/screenshot-validation.png\``,
|
|
748
|
-
`</OUTPUT_FORMAT>`,
|
|
749
|
-
``,
|
|
750
|
-
`<CONSTRAINTS>`,
|
|
751
|
-
`Report what you SEE — do not speculate about code issues.`,
|
|
752
|
-
`If the HTML fails to render, report the error.`,
|
|
753
|
-
TRAILING_PROSE_REMINDER,
|
|
754
|
-
`</CONSTRAINTS>`,
|
|
755
|
-
].join("\n");
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
/** Phase 4 — visible: apply feedback + critique findings to the design. */
|
|
759
|
-
export function buildApplyChangesPrompt(opts: {
|
|
760
|
-
prompt: string;
|
|
761
|
-
designDir: string;
|
|
762
|
-
designSystem: DesignSystemData;
|
|
763
|
-
userFeedback: string;
|
|
764
|
-
critiqueOutput: string;
|
|
765
|
-
screenshotOutput: string;
|
|
766
|
-
scanFindings: string;
|
|
767
|
-
iteration: number;
|
|
768
|
-
}): string {
|
|
769
|
-
return [
|
|
770
|
-
`<DESIGN_REQUEST>`,
|
|
771
|
-
opts.prompt,
|
|
772
|
-
`</DESIGN_REQUEST>`,
|
|
773
|
-
``,
|
|
774
|
-
`<TASK>`,
|
|
775
|
-
`Apply refinements to the design based on user feedback, automated critique`,
|
|
776
|
-
`findings, and visual validation results. This is iteration ${opts.iteration}.`,
|
|
777
|
-
`</TASK>`,
|
|
778
|
-
``,
|
|
779
|
-
`<DESIGN_LOCATION>`,
|
|
780
|
-
`Edit these files in place:`,
|
|
781
|
-
`- \`${opts.designDir}/index.html\``,
|
|
782
|
-
`- \`${opts.designDir}/styles.css\``,
|
|
783
|
-
`- \`${opts.designDir}/script.js\``,
|
|
784
|
-
`</DESIGN_LOCATION>`,
|
|
785
|
-
``,
|
|
786
|
-
`<DESIGN_SYSTEM>`,
|
|
787
|
-
opts.designSystem.raw,
|
|
788
|
-
`</DESIGN_SYSTEM>`,
|
|
789
|
-
``,
|
|
790
|
-
`<USER_FEEDBACK>`,
|
|
791
|
-
opts.userFeedback.trim() || "(no specific user feedback)",
|
|
792
|
-
`</USER_FEEDBACK>`,
|
|
793
|
-
``,
|
|
794
|
-
`<CRITIQUE_FINDINGS>`,
|
|
795
|
-
opts.critiqueOutput.trim() || "(no critique findings)",
|
|
796
|
-
`</CRITIQUE_FINDINGS>`,
|
|
797
|
-
``,
|
|
798
|
-
`<VISUAL_VALIDATION>`,
|
|
799
|
-
opts.screenshotOutput.trim() || "(no visual validation performed)",
|
|
800
|
-
`</VISUAL_VALIDATION>`,
|
|
801
|
-
``,
|
|
802
|
-
`<SCANNER_FINDINGS>`,
|
|
803
|
-
`The \`${SCAN_COMMAND_STR}\` scanner produced the following findings against`,
|
|
804
|
-
`the current design. Every one of these MUST be removed — the scanner will`,
|
|
805
|
-
`run again before export and any remaining finding blocks handoff.`,
|
|
806
|
-
``,
|
|
807
|
-
opts.scanFindings.trim() || "(no scanner findings — clean on this dimension)",
|
|
808
|
-
`</SCANNER_FINDINGS>`,
|
|
809
|
-
``,
|
|
810
|
-
`<CHANGE_PRIORITY>`,
|
|
811
|
-
`Apply changes in this priority order:`,
|
|
812
|
-
`1. Scanner findings — deterministic bans that gate export`,
|
|
813
|
-
`2. User feedback — the user's requests take next priority`,
|
|
814
|
-
`3. P0 critique findings — critical issues that must be fixed`,
|
|
815
|
-
`4. P1 critique findings — important issues`,
|
|
816
|
-
`5. Visual validation issues — rendering problems`,
|
|
817
|
-
`6. P2 critique findings — moderate issues (if time permits)`,
|
|
818
|
-
`7. Skip P3 findings — they are informational only`,
|
|
819
|
-
`</CHANGE_PRIORITY>`,
|
|
820
|
-
``,
|
|
821
|
-
`<DESIGN_RULES>`,
|
|
822
|
-
`The following rules are inlined and authoritative — do not introduce any`,
|
|
823
|
-
`of these patterns while fixing other issues. Loading the /impeccable skill`,
|
|
824
|
-
`is optional supplementary context only.`,
|
|
825
|
-
``,
|
|
826
|
-
renderDesignRules(),
|
|
827
|
-
`</DESIGN_RULES>`,
|
|
828
|
-
``,
|
|
829
|
-
`<INSTRUCTIONS>`,
|
|
830
|
-
`1. Read the current design files.`,
|
|
831
|
-
`2. Plan your changes based on the priority order above.`,
|
|
832
|
-
`3. Apply changes by editing the files in place.`,
|
|
833
|
-
`4. Ensure all design system tokens from Design.md are still used correctly.`,
|
|
834
|
-
`5. Do NOT remove functionality that was working correctly.`,
|
|
835
|
-
`6. After making changes, briefly summarize what you changed and why.`,
|
|
836
|
-
`</INSTRUCTIONS>`,
|
|
837
|
-
``,
|
|
838
|
-
`<CONSTRAINTS>`,
|
|
839
|
-
`- Edit files in place — do not create new files.`,
|
|
840
|
-
`- Maintain design system compliance — use tokens from Design.md.`,
|
|
841
|
-
`- User feedback overrides automated critique when they conflict.`,
|
|
842
|
-
TRAILING_PROSE_REMINDER,
|
|
843
|
-
`</CONSTRAINTS>`,
|
|
844
|
-
``,
|
|
845
|
-
`<DESIGN_REQUEST_REMINDER>`,
|
|
846
|
-
opts.prompt,
|
|
847
|
-
`</DESIGN_REQUEST_REMINDER>`,
|
|
848
|
-
].join("\n");
|
|
849
|
-
}
|
|
850
|
-
|
|
851
|
-
/**
|
|
852
|
-
* Phase 4 — visible: final deterministic gate. Runs when the post-loop
|
|
853
|
-
* scanner still reports findings. The agent MUST remove every one before
|
|
854
|
-
* export; no ambiguity, no negotiation, no new features.
|
|
855
|
-
*/
|
|
856
|
-
export function buildForcedFixPrompt(opts: {
|
|
857
|
-
designDir: string;
|
|
858
|
-
designSystem: DesignSystemData;
|
|
859
|
-
scanFindings: string;
|
|
860
|
-
}): string {
|
|
861
|
-
return [
|
|
862
|
-
`<TASK>`,
|
|
863
|
-
`The deterministic scanner \`${SCAN_COMMAND_STR}\` still reports banned`,
|
|
864
|
-
`anti-patterns in the design files. Export is BLOCKED until every one of`,
|
|
865
|
-
`them is removed. This is a forced-fix pass — make the minimal edits`,
|
|
866
|
-
`needed to eliminate the findings; do not refactor, restyle, or add`,
|
|
867
|
-
`features.`,
|
|
868
|
-
`</TASK>`,
|
|
869
|
-
``,
|
|
870
|
-
`<DESIGN_LOCATION>`,
|
|
871
|
-
`Edit these files in place:`,
|
|
872
|
-
`- \`${opts.designDir}/index.html\``,
|
|
873
|
-
`- \`${opts.designDir}/styles.css\``,
|
|
874
|
-
`- \`${opts.designDir}/script.js\``,
|
|
875
|
-
`</DESIGN_LOCATION>`,
|
|
876
|
-
``,
|
|
877
|
-
`<DESIGN_SYSTEM>`,
|
|
878
|
-
opts.designSystem.raw,
|
|
879
|
-
`</DESIGN_SYSTEM>`,
|
|
880
|
-
``,
|
|
881
|
-
`<SCANNER_FINDINGS>`,
|
|
882
|
-
opts.scanFindings.trim() ||
|
|
883
|
-
"(no findings provided — if you see this, the orchestrator is buggy)",
|
|
884
|
-
`</SCANNER_FINDINGS>`,
|
|
885
|
-
``,
|
|
886
|
-
`<DESIGN_RULES>`,
|
|
887
|
-
renderDesignRules(),
|
|
888
|
-
`</DESIGN_RULES>`,
|
|
889
|
-
``,
|
|
890
|
-
`<INSTRUCTIONS>`,
|
|
891
|
-
`1. For each finding, open the cited file and remove the banned pattern.`,
|
|
892
|
-
`2. For side-stripe borders: delete the rule entirely and rewrite the`,
|
|
893
|
-
` element with a different structure (full border, background tint,`,
|
|
894
|
-
` leading icon/number, or no indicator). Do NOT swap to inset shadow.`,
|
|
895
|
-
`3. For gradient text: replace with a solid color from the design system.`,
|
|
896
|
-
`4. For overused/reflex fonts: pick a distinctive replacement that fits`,
|
|
897
|
-
` the brand voice and is NOT in the banned-fonts list. Update every`,
|
|
898
|
-
` reference to the old font family.`,
|
|
899
|
-
`5. For AI color-palette findings: re-pick from the Design.md tokens.`,
|
|
900
|
-
`6. Do NOT introduce new banned patterns while fixing these.`,
|
|
901
|
-
`7. After editing, briefly list each finding and the file:line you fixed.`,
|
|
902
|
-
`</INSTRUCTIONS>`,
|
|
903
|
-
``,
|
|
904
|
-
`<CONSTRAINTS>`,
|
|
905
|
-
`- Edit files in place — do not create new files.`,
|
|
906
|
-
`- Keep the design system tokens from Design.md intact.`,
|
|
907
|
-
`- Do NOT alter working functionality, content, or copy.`,
|
|
908
|
-
TRAILING_PROSE_REMINDER,
|
|
909
|
-
`</CONSTRAINTS>`,
|
|
910
|
-
].join("\n");
|
|
911
|
-
}
|
|
912
|
-
|
|
913
|
-
// ============================================================================
|
|
914
|
-
// PHASE 5: EXPORT / HANDOFF
|
|
915
|
-
// ============================================================================
|
|
916
|
-
|
|
917
|
-
/** Phase 5 — visible: export design and create output-type-tailored assets. */
|
|
918
|
-
export function buildExportPrompt(opts: {
|
|
919
|
-
prompt: string;
|
|
920
|
-
designDir: string;
|
|
921
|
-
finalDesignDir: string;
|
|
922
|
-
designSystem: DesignSystemData;
|
|
923
|
-
outputType: string;
|
|
924
|
-
}): string {
|
|
925
|
-
return [
|
|
926
|
-
`<TASK>`,
|
|
927
|
-
`Export the final design and create handoff assets tailored to the`,
|
|
928
|
-
`output type the user selected at workflow invocation. Do NOT ask the`,
|
|
929
|
-
`user any further questions — the output type is already decided and`,
|
|
930
|
-
`the assets below are what they expect.`,
|
|
931
|
-
`</TASK>`,
|
|
932
|
-
``,
|
|
933
|
-
`<OUTPUT_TYPE>`,
|
|
934
|
-
`You are exporting a **${opts.outputType}**. Follow the matching asset`,
|
|
935
|
-
`section below (exactly one applies) and skip the others.`,
|
|
936
|
-
`</OUTPUT_TYPE>`,
|
|
937
|
-
``,
|
|
938
|
-
`<DESIGN_LOCATION>`,
|
|
939
|
-
`Source design files: \`${opts.designDir}/\``,
|
|
940
|
-
`Final export directory: \`${opts.finalDesignDir}/\``,
|
|
941
|
-
`</DESIGN_LOCATION>`,
|
|
942
|
-
``,
|
|
943
|
-
`<PROCESS>`,
|
|
944
|
-
``,
|
|
945
|
-
`**Step 1 — Copy design files** (all output types):`,
|
|
946
|
-
`- \`${opts.designDir}/index.html\` → \`${opts.finalDesignDir}/design/index.html\``,
|
|
947
|
-
`- \`${opts.designDir}/styles.css\` → \`${opts.finalDesignDir}/design/styles.css\``,
|
|
948
|
-
`- \`${opts.designDir}/script.js\` → \`${opts.finalDesignDir}/design/script.js\``,
|
|
949
|
-
``,
|
|
950
|
-
`**Step 2 — Output-type-specific assets** (follow the one block matching \`${opts.outputType}\`):`,
|
|
951
|
-
``,
|
|
952
|
-
buildPrototypeAssetsBlock(opts.finalDesignDir),
|
|
953
|
-
``,
|
|
954
|
-
buildWireframeAssetsBlock(),
|
|
955
|
-
``,
|
|
956
|
-
buildPageAssetsBlock(),
|
|
957
|
-
``,
|
|
958
|
-
buildComponentAssetsBlock(opts.finalDesignDir),
|
|
959
|
-
``,
|
|
960
|
-
`**Step 3 — Write \`${opts.finalDesignDir}/design-intent.md\`** (all output types):`,
|
|
961
|
-
` - Original design request (verbatim)`,
|
|
962
|
-
` - Key design decisions made during generation and refinement`,
|
|
963
|
-
` - Design rationale for layout, color, and typography choices`,
|
|
964
|
-
` - Output type: ${opts.outputType}`,
|
|
965
|
-
` - For \`wireframe\`: focus rationale on information architecture and structure rather than color/polish.`,
|
|
966
|
-
``,
|
|
967
|
-
`**Step 4 — Write \`${opts.finalDesignDir}/component-specs.md\`** (all output types — keep this filename stable):`,
|
|
968
|
-
` Tailor the content to the output type:`,
|
|
969
|
-
` - \`prototype\`: full component catalog. For each: name, purpose, variants, key CSS properties, interaction states, navigation role.`,
|
|
970
|
-
` - \`page\`: section-by-section breakdown of the single page (header, main, footer, etc.), responsive behavior, content hierarchy.`,
|
|
971
|
-
` - \`wireframe\`: IA notes, region annotations, which areas are placeholder vs locked, user flow described in text.`,
|
|
972
|
-
` - \`component\`: detailed anatomy of the single component — props/variants table, full state matrix (default/hover/active/focus/disabled/loading), accessibility notes, CSS custom-property API the component exposes, usage snippet.`,
|
|
973
|
-
` Always reference the design system tokens used (from Design.md).`,
|
|
974
|
-
``,
|
|
975
|
-
`**Step 5 — Report** the final export location and, for \`prototype\` only, the exact command to run the server (\`cd ${opts.finalDesignDir}/design && bun run start\`).`,
|
|
976
|
-
``,
|
|
977
|
-
`</PROCESS>`,
|
|
978
|
-
``,
|
|
979
|
-
`<ORIGINAL_REQUEST>`,
|
|
980
|
-
opts.prompt,
|
|
981
|
-
`</ORIGINAL_REQUEST>`,
|
|
982
|
-
``,
|
|
983
|
-
`<CONSTRAINTS>`,
|
|
984
|
-
`- Do NOT use the AskUserQuestion tool — the user has already chosen the output type.`,
|
|
985
|
-
`- Create the export directory structure if it doesn't exist.`,
|
|
986
|
-
`- Do NOT modify the original design files — only copy them.`,
|
|
987
|
-
`- For \`prototype\`: the server MUST be zero-dependency Bun.serve — no Express, http-server, or any other library.`,
|
|
988
|
-
`- Keep \`design-intent.md\` and \`component-specs.md\` concise and actionable.`,
|
|
989
|
-
TRAILING_PROSE_REMINDER,
|
|
990
|
-
`</CONSTRAINTS>`,
|
|
991
|
-
].join("\n");
|
|
992
|
-
}
|
|
993
|
-
|
|
994
|
-
/** Prototype: runnable Bun static-file server on port 4173. */
|
|
995
|
-
function buildPrototypeAssetsBlock(finalDesignDir: string): string {
|
|
996
|
-
return [
|
|
997
|
-
`<PROTOTYPE_ASSETS> (emit only if outputType === "prototype")`,
|
|
998
|
-
``,
|
|
999
|
-
`Create a runnable Bun static-file server so the user can preview and`,
|
|
1000
|
-
`interact with the prototype immediately.`,
|
|
1001
|
-
``,
|
|
1002
|
-
`a. Write \`${finalDesignDir}/design/server.ts\` with EXACTLY this content:`,
|
|
1003
|
-
``,
|
|
1004
|
-
"```ts",
|
|
1005
|
-
`import { file } from "bun";`,
|
|
1006
|
-
`import { dirname, extname, join, normalize } from "node:path";`,
|
|
1007
|
-
`import { fileURLToPath } from "node:url";`,
|
|
1008
|
-
``,
|
|
1009
|
-
`const ROOT = dirname(fileURLToPath(import.meta.url));`,
|
|
1010
|
-
`const PORT = Number(process.env.PORT ?? 4173);`,
|
|
1011
|
-
``,
|
|
1012
|
-
`const MIME: Record<string, string> = {`,
|
|
1013
|
-
` ".html": "text/html; charset=utf-8",`,
|
|
1014
|
-
` ".css": "text/css; charset=utf-8",`,
|
|
1015
|
-
` ".js": "application/javascript; charset=utf-8",`,
|
|
1016
|
-
` ".json": "application/json; charset=utf-8",`,
|
|
1017
|
-
` ".svg": "image/svg+xml",`,
|
|
1018
|
-
` ".png": "image/png",`,
|
|
1019
|
-
` ".jpg": "image/jpeg",`,
|
|
1020
|
-
` ".jpeg": "image/jpeg",`,
|
|
1021
|
-
` ".gif": "image/gif",`,
|
|
1022
|
-
` ".ico": "image/x-icon",`,
|
|
1023
|
-
` ".webp": "image/webp",`,
|
|
1024
|
-
` ".woff": "font/woff",`,
|
|
1025
|
-
` ".woff2": "font/woff2",`,
|
|
1026
|
-
`};`,
|
|
1027
|
-
``,
|
|
1028
|
-
`Bun.serve({`,
|
|
1029
|
-
` port: PORT,`,
|
|
1030
|
-
` async fetch(req) {`,
|
|
1031
|
-
` const url = new URL(req.url);`,
|
|
1032
|
-
` const pathname = url.pathname === "/" ? "/index.html" : url.pathname;`,
|
|
1033
|
-
` const resolved = normalize(join(ROOT, pathname));`,
|
|
1034
|
-
` if (!resolved.startsWith(ROOT)) return new Response("Forbidden", { status: 403 });`,
|
|
1035
|
-
` const f = file(resolved);`,
|
|
1036
|
-
` if (!(await f.exists())) return new Response("Not Found", { status: 404 });`,
|
|
1037
|
-
` const type = MIME[extname(resolved).toLowerCase()] ?? "application/octet-stream";`,
|
|
1038
|
-
` return new Response(f, { headers: { "Content-Type": type } });`,
|
|
1039
|
-
` },`,
|
|
1040
|
-
`});`,
|
|
1041
|
-
``,
|
|
1042
|
-
`console.log(\`Prototype running at http://localhost:\${PORT}\`);`,
|
|
1043
|
-
"```",
|
|
1044
|
-
``,
|
|
1045
|
-
`b. Write \`${finalDesignDir}/design/package.json\` with EXACTLY this content`,
|
|
1046
|
-
` (replacing \`<slug>\` with a lowercase-kebab slug derived from the design request):`,
|
|
1047
|
-
``,
|
|
1048
|
-
"```json",
|
|
1049
|
-
`{`,
|
|
1050
|
-
` "name": "<slug>-prototype",`,
|
|
1051
|
-
` "private": true,`,
|
|
1052
|
-
` "type": "module",`,
|
|
1053
|
-
` "scripts": {`,
|
|
1054
|
-
` "start": "bun run server.ts"`,
|
|
1055
|
-
` }`,
|
|
1056
|
-
`}`,
|
|
1057
|
-
"```",
|
|
1058
|
-
``,
|
|
1059
|
-
`</PROTOTYPE_ASSETS>`,
|
|
1060
|
-
].join("\n");
|
|
1061
|
-
}
|
|
1062
|
-
|
|
1063
|
-
/** Wireframe: no server, no extra files beyond the core three. */
|
|
1064
|
-
function buildWireframeAssetsBlock(): string {
|
|
1065
|
-
return [
|
|
1066
|
-
`<WIREFRAME_ASSETS> (emit only if outputType === "wireframe")`,
|
|
1067
|
-
``,
|
|
1068
|
-
`No server or package.json — wireframes are viewed by opening`,
|
|
1069
|
-
`\`design/index.html\` directly in a browser. Do NOT create \`server.ts\``,
|
|
1070
|
-
`or \`package.json\` for this output type.`,
|
|
1071
|
-
``,
|
|
1072
|
-
`</WIREFRAME_ASSETS>`,
|
|
1073
|
-
].join("\n");
|
|
1074
|
-
}
|
|
1075
|
-
|
|
1076
|
-
/** Page: no server, no extra files beyond the core three. */
|
|
1077
|
-
function buildPageAssetsBlock(): string {
|
|
1078
|
-
return [
|
|
1079
|
-
`<PAGE_ASSETS> (emit only if outputType === "page")`,
|
|
1080
|
-
``,
|
|
1081
|
-
`No server or package.json — the user opens \`design/index.html\` directly.`,
|
|
1082
|
-
`Do NOT create \`server.ts\` or \`package.json\` for this output type.`,
|
|
1083
|
-
``,
|
|
1084
|
-
`</PAGE_ASSETS>`,
|
|
1085
|
-
].join("\n");
|
|
1086
|
-
}
|
|
1087
|
-
|
|
1088
|
-
/** Component: showcase in index.html plus an isolated copy-paste snippet. */
|
|
1089
|
-
function buildComponentAssetsBlock(finalDesignDir: string): string {
|
|
1090
|
-
return [
|
|
1091
|
-
`<COMPONENT_ASSETS> (emit only if outputType === "component")`,
|
|
1092
|
-
``,
|
|
1093
|
-
`In addition to the core three files, write a standalone snippet for`,
|
|
1094
|
-
`easy copy-paste into a host application:`,
|
|
1095
|
-
``,
|
|
1096
|
-
`\`${finalDesignDir}/design/snippet.html\``,
|
|
1097
|
-
`- Just the component markup (no showcase chrome, no variant grid).`,
|
|
1098
|
-
`- A single \`<style>\` block with the CSS custom properties the`,
|
|
1099
|
-
` component requires, scoped to the snippet root so it can be dropped`,
|
|
1100
|
-
` into any page without collisions.`,
|
|
1101
|
-
`- Inline any JS the component needs as a \`<script>\` block at the`,
|
|
1102
|
-
` bottom of the file.`,
|
|
1103
|
-
`- Must render correctly when opened directly in a browser.`,
|
|
1104
|
-
``,
|
|
1105
|
-
`No server or package.json — the user opens \`design/index.html\` (the`,
|
|
1106
|
-
`showcase) or \`design/snippet.html\` (the isolated copy) directly.`,
|
|
1107
|
-
``,
|
|
1108
|
-
`</COMPONENT_ASSETS>`,
|
|
1109
|
-
].join("\n");
|
|
1110
|
-
}
|