moai-adk 0.4.5__py3-none-any.whl → 0.4.8__py3-none-any.whl
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.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/__init__.py +1 -1
- moai_adk/core/project/initializer.py +12 -5
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +188 -954
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +4 -5
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +2 -2
- moai_adk/templates/.claude/agents/alfred/git-manager.md +2 -2
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +3 -3
- moai_adk/templates/.claude/agents/alfred/project-manager.md +6 -6
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +4 -6
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +829 -0
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +2 -2
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +2 -2
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +3 -3
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +5 -5
- moai_adk/templates/.claude/commands/alfred/0-project.md +98 -42
- moai_adk/templates/.claude/commands/alfred/1-plan.md +7 -7
- moai_adk/templates/.claude/commands/alfred/2-run.md +36 -36
- moai_adk/templates/.claude/commands/alfred/3-sync.md +10 -10
- moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +14 -1
- moai_adk/templates/.claude/hooks/alfred/core/__init__.py +115 -33
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py +8 -9
- moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +6 -6
- moai_adk/templates/.claude/hooks/alfred/handlers/user.py +5 -4
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +1 -1
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +1 -1
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +1 -1
- moai_adk/templates/.claude/settings.json +42 -2
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +76 -66
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +86 -59
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +29 -0
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +480 -0
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +257 -0
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +120 -0
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +87 -73
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +78 -62
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +78 -55
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +78 -64
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +249 -0
- moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +32 -0
- moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +278 -0
- moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +26 -0
- moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +287 -0
- moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +21 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +232 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +19 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +19 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +24 -0
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +179 -0
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +39 -0
- moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +296 -0
- moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +18 -0
- moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +243 -0
- moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +30 -0
- moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +271 -0
- moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +15 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +234 -43
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +1633 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +660 -0
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +97 -69
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +97 -72
- moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +97 -74
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +98 -73
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +97 -73
- moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +97 -67
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +97 -79
- moai_adk/templates/.claude/skills/moai-domain-security/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-security/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +97 -71
- moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +656 -60
- moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +1107 -0
- moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +1533 -0
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +87 -78
- moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +87 -70
- moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +87 -86
- moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +77 -62
- moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +88 -56
- moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +90 -71
- moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +78 -58
- moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +78 -51
- moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +253 -32
- moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +1099 -0
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-lang-c/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-c/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +98 -76
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +97 -74
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +86 -61
- moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +87 -61
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +88 -59
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +32 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +98 -73
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +86 -61
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +388 -53
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +624 -0
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +316 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +97 -73
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +98 -73
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +97 -74
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +97 -74
- moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +97 -73
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +90 -59
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +34 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +482 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +278 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +524 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +477 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +429 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +391 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +431 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +577 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +560 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +466 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +583 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +526 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +465 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +328 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +312 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +245 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +285 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +278 -0
- moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +303 -0
- moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +129 -0
- moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +1300 -0
- moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +161 -0
- moai_adk/templates/CLAUDE.md +121 -81
- moai_adk-0.4.8.dist-info/METADATA +1553 -0
- moai_adk-0.4.8.dist-info/RECORD +265 -0
- moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +0 -112
- moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +0 -103
- moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +0 -105
- moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +0 -97
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +0 -87
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +0 -62
- moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +0 -94
- moai_adk/templates/.claude/skills/moai-claude-code/examples.md +0 -513
- moai_adk/templates/.claude/skills/moai-claude-code/reference.md +0 -433
- moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +0 -332
- moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +0 -384
- moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +0 -363
- moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +0 -595
- moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +0 -496
- moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +0 -100
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +0 -99
- moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +0 -100
- moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +0 -98
- moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +0 -98
- moai_adk-0.4.5.dist-info/METADATA +0 -369
- moai_adk-0.4.5.dist-info/RECORD +0 -152
- {moai_adk-0.4.5.dist-info → moai_adk-0.4.8.dist-info}/WHEEL +0 -0
- {moai_adk-0.4.5.dist-info → moai_adk-0.4.8.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.4.5.dist-info → moai_adk-0.4.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# moai-alfred-interactive-questions - Working Examples
|
|
2
|
+
|
|
3
|
+
_Last updated: 2025-10-23_
|
|
4
|
+
|
|
5
|
+
## Example 1: Simple Confirmation
|
|
6
|
+
|
|
7
|
+
**Scenario**: Destructive operation (delete 50 user records)
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const answer = await AskUserQuestion({
|
|
11
|
+
questions: [{
|
|
12
|
+
question: "This will permanently delete 50 user records. Continue?",
|
|
13
|
+
header: "Confirm",
|
|
14
|
+
multiSelect: false,
|
|
15
|
+
options: [
|
|
16
|
+
{ label: "Yes, proceed", description: "Irreversible operation. Delete now." },
|
|
17
|
+
{ label: "No, cancel", description: "Abort and return." }
|
|
18
|
+
]
|
|
19
|
+
}]
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
if (answer["Confirm"] === "Yes, proceed") {
|
|
23
|
+
// Execute deletion
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Example 2: Implementation Approach
|
|
30
|
+
|
|
31
|
+
**Scenario**: "Add a completion page" (vague)
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
const answer = await AskUserQuestion({
|
|
35
|
+
questions: [
|
|
36
|
+
{
|
|
37
|
+
question: "How should the completion page be implemented?",
|
|
38
|
+
header: "Approach",
|
|
39
|
+
multiSelect: false,
|
|
40
|
+
options: [
|
|
41
|
+
{ label: "New public route", description: "Separate page at /competition-closed" },
|
|
42
|
+
{ label: "Modify /end page", description: "Add conditional logic to existing page" },
|
|
43
|
+
{ label: "Environment flag", description: "Use NEXT_PUBLIC_COMPETITION_CLOSED" }
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: "For logged-in participants?",
|
|
48
|
+
header: "Behavior",
|
|
49
|
+
multiSelect: false,
|
|
50
|
+
options: [
|
|
51
|
+
{ label: "Show results", description: "Redirect to /end with full history" },
|
|
52
|
+
{ label: "Show message", description: "'Competition concluded' only" }
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
const approach = answer["Approach"];
|
|
59
|
+
const behavior = answer["Behavior"];
|
|
60
|
+
// Proceed with confirmed specifications
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Example 3: Multi-Select (Independent Features)
|
|
66
|
+
|
|
67
|
+
**Scenario**: "Which testing frameworks?"
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
const answer = await AskUserQuestion({
|
|
71
|
+
questions: [{
|
|
72
|
+
question: "Which testing frameworks to include?",
|
|
73
|
+
header: "Test Tools",
|
|
74
|
+
multiSelect: true, // User can select multiple
|
|
75
|
+
options: [
|
|
76
|
+
{ label: "Unit tests (Vitest)", description: "Fast unit testing." },
|
|
77
|
+
{ label: "E2E tests (Playwright)", description: "Browser automation." },
|
|
78
|
+
{ label: "Visual regression", description: "Screenshot comparison." }
|
|
79
|
+
]
|
|
80
|
+
}]
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
const selectedTools = answer["Test Tools"]; // ["Unit tests (Vitest)", "E2E tests (Playwright)"]
|
|
84
|
+
// Install selected frameworks
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Example 4: Sequential Questions (Conditional)
|
|
90
|
+
|
|
91
|
+
**Scenario**: Q2 depends on Q1 answer
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
// Question 1
|
|
95
|
+
const q1 = await AskUserQuestion({
|
|
96
|
+
questions: [{
|
|
97
|
+
question: "Enable authentication?",
|
|
98
|
+
header: "Auth",
|
|
99
|
+
options: [
|
|
100
|
+
{ label: "Yes", description: "User login required." },
|
|
101
|
+
{ label: "No", description: "Public access." }
|
|
102
|
+
]
|
|
103
|
+
}]
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// Question 2 (only if Q1 = "Yes")
|
|
107
|
+
if (q1["Auth"] === "Yes") {
|
|
108
|
+
const q2 = await AskUserQuestion({
|
|
109
|
+
questions: [{
|
|
110
|
+
question: "Which auth provider?",
|
|
111
|
+
header: "Provider",
|
|
112
|
+
options: [
|
|
113
|
+
{ label: "JWT + email", description: "Traditional email/password." },
|
|
114
|
+
{ label: "OAuth", description: "Third-party login (Google, GitHub)." }
|
|
115
|
+
]
|
|
116
|
+
}]
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
const provider = q2["Provider"];
|
|
120
|
+
// Setup authentication
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Example 5: Feature Selection
|
|
127
|
+
|
|
128
|
+
**Scenario**: "Which i18n library?"
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
const answer = await AskUserQuestion({
|
|
132
|
+
questions: [{
|
|
133
|
+
question: "Which i18n library?",
|
|
134
|
+
header: "Library",
|
|
135
|
+
multiSelect: false,
|
|
136
|
+
options: [
|
|
137
|
+
{ label: "next-intl", description: "Next.js 15+ native, best DX." },
|
|
138
|
+
{ label: "react-i18next", description: "Popular, flexible, more setup." },
|
|
139
|
+
{ label: "Format.js", description: "ICU format, complex but powerful." }
|
|
140
|
+
]
|
|
141
|
+
}]
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
const library = answer["Library"]; // "next-intl"
|
|
145
|
+
// Install and configure library
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Example 6: Error Recovery
|
|
151
|
+
|
|
152
|
+
**Scenario**: 3 tests failed, ask how to proceed
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
const answer = await AskUserQuestion({
|
|
156
|
+
questions: [{
|
|
157
|
+
question: "3 tests failed in auth.test.ts. How should we proceed?",
|
|
158
|
+
header: "Test Failure",
|
|
159
|
+
multiSelect: false,
|
|
160
|
+
options: [
|
|
161
|
+
{ label: "Debug immediately", description: "Stop and fix now." },
|
|
162
|
+
{ label: "Skip tests", description: "NOT RECOMMENDED - continues with failing tests." },
|
|
163
|
+
{ label: "Rollback changes", description: "Revert to last passing commit." }
|
|
164
|
+
]
|
|
165
|
+
}]
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
if (answer["Test Failure"] === "Debug immediately") {
|
|
169
|
+
// Trigger debug workflow
|
|
170
|
+
} else if (answer["Test Failure"] === "Rollback changes") {
|
|
171
|
+
// Rollback git changes
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Example 7: /alfred:1-plan Integration
|
|
178
|
+
|
|
179
|
+
**Scenario**: spec-builder detects ambiguous SPEC title
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// Inside spec-builder
|
|
183
|
+
function shouldAskForClarification(title: string): boolean {
|
|
184
|
+
return title.length < 20 || title.includes("feature/add/implement");
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (shouldAskForClarification(userTitle)) {
|
|
188
|
+
const answer = await AskUserQuestion({
|
|
189
|
+
questions: [{
|
|
190
|
+
question: "Can you clarify what this SPEC should cover?",
|
|
191
|
+
header: "Scope",
|
|
192
|
+
options: [
|
|
193
|
+
{ label: "Authentication system", description: "User login, JWT tokens, refresh logic." },
|
|
194
|
+
{ label: "UI components", description: "Reusable components library." },
|
|
195
|
+
{ label: "API endpoints", description: "REST API implementation." }
|
|
196
|
+
]
|
|
197
|
+
}]
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
specTitle = answer["Scope"];
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Example 8: /alfred:2-run Integration
|
|
207
|
+
|
|
208
|
+
**Scenario**: code-builder detects multiple implementation paths
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
// Inside code-builder
|
|
212
|
+
if (multipleValidImplementationPaths) {
|
|
213
|
+
const answer = await AskUserQuestion({
|
|
214
|
+
questions: [{
|
|
215
|
+
question: "How should we implement JWT storage?",
|
|
216
|
+
header: "Storage",
|
|
217
|
+
options: [
|
|
218
|
+
{ label: "HttpOnly cookie", description: "Most secure, no JS access." },
|
|
219
|
+
{ label: "LocalStorage", description: "Accessible but vulnerable to XSS." },
|
|
220
|
+
{ label: "Memory + refresh", description: "Balance between security and UX." }
|
|
221
|
+
]
|
|
222
|
+
}]
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
const storageStrategy = answer["Storage"];
|
|
226
|
+
implementWithStrategy(storageStrategy);
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Example 9: /alfred:3-sync Integration
|
|
233
|
+
|
|
234
|
+
**Scenario**: doc-syncer asks about sync mode
|
|
235
|
+
|
|
236
|
+
```typescript
|
|
237
|
+
// Inside doc-syncer
|
|
238
|
+
const answer = await AskUserQuestion({
|
|
239
|
+
questions: [{
|
|
240
|
+
question: "Which sync mode?",
|
|
241
|
+
header: "Mode",
|
|
242
|
+
multiSelect: false,
|
|
243
|
+
options: [
|
|
244
|
+
{ label: "auto", description: "Smart detection, sync affected docs only." },
|
|
245
|
+
{ label: "force", description: "Regenerate all docs from scratch." },
|
|
246
|
+
{ label: "status", description: "Show status without making changes." }
|
|
247
|
+
]
|
|
248
|
+
}]
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
const syncMode = answer["Mode"];
|
|
252
|
+
runSync(syncMode);
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
For detailed guidance, see **SKILL.md** and **reference.md**
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# moai-alfred-interactive-questions - Quick Reference
|
|
2
|
+
|
|
3
|
+
_Last updated: 2025-10-23_
|
|
4
|
+
|
|
5
|
+
## AskUserQuestion API Essentials
|
|
6
|
+
|
|
7
|
+
### Minimal Template
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const answer = await AskUserQuestion({
|
|
11
|
+
questions: [
|
|
12
|
+
{
|
|
13
|
+
question: "Your question here?",
|
|
14
|
+
header: "Short label", // max 12 chars
|
|
15
|
+
multiSelect: false, // or true for multi-select
|
|
16
|
+
options: [
|
|
17
|
+
{
|
|
18
|
+
label: "Option 1", // 1-5 words
|
|
19
|
+
description: "Why you'd pick this option."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
label: "Option 2",
|
|
23
|
+
description: "Alternative with different implications."
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Access result
|
|
31
|
+
const choice = answer["Short label"]; // "Option 1" or ["Option 1", "Option 2"]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## When to Ask (Checklist)
|
|
37
|
+
|
|
38
|
+
- [ ] User intent is ambiguous
|
|
39
|
+
- [ ] Multiple valid implementation paths exist
|
|
40
|
+
- [ ] Trade-off decision (speed vs quality, simple vs complete)
|
|
41
|
+
- [ ] Risky/destructive operation needs approval
|
|
42
|
+
- [ ] Feature scope needs definition
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Top 5 Patterns
|
|
47
|
+
|
|
48
|
+
| Pattern | Use When | Example |
|
|
49
|
+
|---------|----------|---------|
|
|
50
|
+
| **Implementation Approach** | "Add feature X" without specifics | New component vs extend existing |
|
|
51
|
+
| **Confirmation** | Destructive action (delete, migrate) | "Delete 50 records. Proceed?" |
|
|
52
|
+
| **Feature Selection** | "Which framework/library?" | next-intl vs react-i18next |
|
|
53
|
+
| **Multi-Select** | Independent combinable features | Unit + E2E + Visual tests |
|
|
54
|
+
| **Sequential** | Dependent questions (Q2 depends on Q1) | Enable auth? → Which provider? |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Key Constraints
|
|
59
|
+
|
|
60
|
+
| What | Max | Why |
|
|
61
|
+
|------|-----|-----|
|
|
62
|
+
| Questions | 4 | Avoid fatigue |
|
|
63
|
+
| Options | 4 | Prevent choice paralysis |
|
|
64
|
+
| Header length | 12 chars | TUI layout |
|
|
65
|
+
| Label length | 5 words | Quick scanning |
|
|
66
|
+
| Nesting depth | 2 levels | Keep linear flow |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Integration Points
|
|
71
|
+
|
|
72
|
+
### spec-builder (`/alfred:1-plan`)
|
|
73
|
+
Ask when SPEC title/scope is vague
|
|
74
|
+
|
|
75
|
+
### code-builder (`/alfred:2-run`)
|
|
76
|
+
Ask when implementation approach unclear or multiple paths exist
|
|
77
|
+
|
|
78
|
+
### doc-syncer (`/alfred:3-sync`)
|
|
79
|
+
Ask when sync mode or documentation scope unclear
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Error Handling
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
// User cancels (ESC)
|
|
87
|
+
try {
|
|
88
|
+
const answer = await AskUserQuestion({...});
|
|
89
|
+
} catch (error) {
|
|
90
|
+
// Fallback or abort
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Validate custom input ("Other" option)
|
|
94
|
+
if (!VALID_OPTIONS.includes(answer["Header"])) {
|
|
95
|
+
validateCustomInput(answer["Header"]);
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Best Practices (Quick)
|
|
102
|
+
|
|
103
|
+
✅ **DO**:
|
|
104
|
+
- Be specific ("Which database?" not "What should we use?")
|
|
105
|
+
- Provide context (file names, scope, impact)
|
|
106
|
+
- Explain trade-offs
|
|
107
|
+
- Order logically (safest first)
|
|
108
|
+
- Batch related questions
|
|
109
|
+
|
|
110
|
+
❌ **DON'T**:
|
|
111
|
+
- Overuse (only when ambiguous)
|
|
112
|
+
- Too many options (2-4 max)
|
|
113
|
+
- Skip descriptions
|
|
114
|
+
- Hide implications
|
|
115
|
+
- Make destructive default
|
|
116
|
+
- Manually add "Other" (auto-provided)
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
For full details, see **SKILL.md**
|
|
@@ -1,99 +1,113 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
name: moai-alfred-language-detection
|
|
4
|
-
|
|
3
|
+
version: 2.0.0
|
|
4
|
+
created: 2025-10-22
|
|
5
|
+
updated: 2025-10-22
|
|
6
|
+
status: active
|
|
7
|
+
description: Auto-detects project language and framework from package.json, pyproject.toml, etc.
|
|
8
|
+
keywords: ['language', 'detection', 'framework', 'auto']
|
|
5
9
|
allowed-tools:
|
|
6
10
|
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
11
|
- Bash
|
|
10
|
-
- TodoWrite
|
|
11
12
|
---
|
|
12
13
|
|
|
13
|
-
# Alfred Language Detection
|
|
14
|
+
# Alfred Language Detection Skill
|
|
14
15
|
|
|
15
16
|
## Skill Metadata
|
|
17
|
+
|
|
16
18
|
| Field | Value |
|
|
17
19
|
| ----- | ----- |
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Automatically detects project's primary language and framework by scanning configuration files, then recommends appropriate testing tools and linters.
|
|
25
|
-
|
|
26
|
-
## When to use
|
|
27
|
-
|
|
28
|
-
- Activates when Alfred needs to detect project languages or recommend toolchains.
|
|
29
|
-
- "Detect language", "Check project language", "Recommend testing tools"
|
|
30
|
-
- Automatically invoked by `/alfred:0-project`, `/alfred:2-run`
|
|
31
|
-
- Setting up new project
|
|
32
|
-
|
|
33
|
-
## How it works
|
|
34
|
-
|
|
35
|
-
**Configuration File Scanning**:
|
|
36
|
-
- `package.json` → TypeScript/JavaScript (Jest/Vitest, ESLint/Biome)
|
|
37
|
-
- `pyproject.toml` → Python (pytest, ruff, black)
|
|
38
|
-
- `Cargo.toml` → Rust (cargo test, clippy, rustfmt)
|
|
39
|
-
- `go.mod` → Go (go test, golint, gofmt)
|
|
40
|
-
- `Gemfile` → Ruby (RSpec, RuboCop)
|
|
41
|
-
- `pubspec.yaml` → Dart/Flutter (flutter test, dart analyze)
|
|
42
|
-
- `build.gradle` → Java/Kotlin (JUnit, Checkstyle)
|
|
43
|
-
- `Package.swift` → Swift (XCTest, SwiftLint)
|
|
44
|
-
|
|
45
|
-
**Toolchain Recommendation**:
|
|
46
|
-
```json
|
|
47
|
-
{
|
|
48
|
-
"language": "Python",
|
|
49
|
-
"test_framework": "pytest",
|
|
50
|
-
"linter": "ruff",
|
|
51
|
-
"formatter": "black",
|
|
52
|
-
"type_checker": "mypy",
|
|
53
|
-
"package_manager": "uv"
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**Framework Detection**:
|
|
58
|
-
- **Python**: FastAPI, Django, Flask
|
|
59
|
-
- **TypeScript**: React, Next.js, Vue
|
|
60
|
-
- **Java**: Spring Boot, Quarkus
|
|
61
|
-
|
|
62
|
-
**Supported Languages**: Python, TypeScript, Java, Go, Rust, Ruby, Dart, Swift, Kotlin, PHP, C#, C++, Elixir, Scala, Clojure (20+ languages)
|
|
20
|
+
| **Skill Name** | moai-alfred-language-detection |
|
|
21
|
+
| **Version** | 2.0.0 (2025-10-22) |
|
|
22
|
+
| **Allowed tools** | Read (read_file), Bash (terminal) |
|
|
23
|
+
| **Auto-load** | On demand when keywords detected |
|
|
24
|
+
| **Tier** | Alfred |
|
|
63
25
|
|
|
64
|
-
|
|
65
|
-
- The text shown to the user is written using TUI/report expressions.
|
|
66
|
-
- When running the tool, a summary of commands and results are recorded.
|
|
26
|
+
---
|
|
67
27
|
|
|
68
|
-
##
|
|
69
|
-
|
|
70
|
-
-
|
|
71
|
-
|
|
72
|
-
|
|
28
|
+
## What It Does
|
|
29
|
+
|
|
30
|
+
Auto-detects project language and framework from package.json, pyproject.toml, etc.
|
|
31
|
+
|
|
32
|
+
**Key capabilities**:
|
|
33
|
+
- ✅ Best practices enforcement for alfred domain
|
|
34
|
+
- ✅ TRUST 5 principles integration
|
|
35
|
+
- ✅ Latest tool versions (2025-10-22)
|
|
36
|
+
- ✅ TDD workflow support
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## When to Use
|
|
41
|
+
|
|
42
|
+
**Automatic triggers**:
|
|
43
|
+
- Related code discussions and file patterns
|
|
44
|
+
- SPEC implementation (`/alfred:2-run`)
|
|
45
|
+
- Code review requests
|
|
46
|
+
|
|
47
|
+
**Manual invocation**:
|
|
48
|
+
- Review code for TRUST 5 compliance
|
|
49
|
+
- Design new features
|
|
50
|
+
- Troubleshoot issues
|
|
51
|
+
|
|
52
|
+
---
|
|
73
53
|
|
|
74
54
|
## Inputs
|
|
75
|
-
|
|
76
|
-
-
|
|
55
|
+
|
|
56
|
+
- Language-specific source directories
|
|
57
|
+
- Configuration files
|
|
58
|
+
- Test suites and sample data
|
|
77
59
|
|
|
78
60
|
## Outputs
|
|
79
|
-
|
|
80
|
-
-
|
|
61
|
+
|
|
62
|
+
- Test/lint execution plan
|
|
63
|
+
- TRUST 5 review checkpoints
|
|
64
|
+
- Migration guidance
|
|
81
65
|
|
|
82
66
|
## Failure Modes
|
|
83
|
-
|
|
84
|
-
- When
|
|
67
|
+
|
|
68
|
+
- When required tools are not installed
|
|
69
|
+
- When dependencies are missing
|
|
70
|
+
- When test coverage falls below 85%
|
|
85
71
|
|
|
86
72
|
## Dependencies
|
|
87
|
-
- Cooperation with higher-level agents such as cc-manager and project-manager is required.
|
|
88
73
|
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
74
|
+
- Access to project files via Read/Bash tools
|
|
75
|
+
- Integration with `moai-foundation-langs` for language detection
|
|
76
|
+
- Integration with `moai-foundation-trust` for quality gates
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## References (Latest Documentation)
|
|
81
|
+
|
|
82
|
+
_Documentation links updated 2025-10-22_
|
|
83
|
+
|
|
84
|
+
---
|
|
92
85
|
|
|
93
86
|
## Changelog
|
|
94
|
-
- 2025-03-29: Added input/output/failure response to Alfred-specific skills.
|
|
95
87
|
|
|
96
|
-
|
|
88
|
+
- **v2.0.0** (2025-10-22): Major update with latest tool versions, comprehensive best practices, TRUST 5 integration
|
|
89
|
+
- **v1.0.0** (2025-03-29): Initial Skill release
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Works Well With
|
|
94
|
+
|
|
95
|
+
- `moai-foundation-trust` (quality gates)
|
|
96
|
+
- `moai-alfred-code-reviewer` (code review)
|
|
97
|
+
- `moai-essentials-debug` (debugging support)
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Best Practices
|
|
97
102
|
|
|
98
|
-
|
|
99
|
-
- alfred
|
|
103
|
+
✅ **DO**:
|
|
104
|
+
- Follow alfred best practices
|
|
105
|
+
- Use latest stable tool versions
|
|
106
|
+
- Maintain test coverage ≥85%
|
|
107
|
+
- Document all public APIs
|
|
108
|
+
|
|
109
|
+
❌ **DON'T**:
|
|
110
|
+
- Skip quality gates
|
|
111
|
+
- Use deprecated tools
|
|
112
|
+
- Ignore security warnings
|
|
113
|
+
- Mix testing frameworks
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# moai-alfred-language-detection - Working Examples
|
|
2
|
+
|
|
3
|
+
_Last updated: 2025-10-22_
|
|
4
|
+
|
|
5
|
+
## Example 1: Basic Setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Setup commands
|
|
9
|
+
# ...
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Example 2: TDD Workflow
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# RED: Write failing test
|
|
16
|
+
# GREEN: Implement feature
|
|
17
|
+
# REFACTOR: Improve code
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Example 3: Quality Gate
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Run quality checks
|
|
24
|
+
# Verify coverage ≥85%
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
_For more examples, see SKILL.md reference section_
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# moai-alfred-language-detection - CLI Reference
|
|
2
|
+
|
|
3
|
+
_Last updated: 2025-10-22_
|
|
4
|
+
|
|
5
|
+
## Quick Reference
|
|
6
|
+
|
|
7
|
+
### Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Installation commands
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Common Commands
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Test
|
|
17
|
+
# Lint
|
|
18
|
+
# Format
|
|
19
|
+
# Build
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Tool Versions (2025-10-22)
|
|
23
|
+
|
|
24
|
+
_No specific tool versions (workflow/process Skill)_
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
_For detailed usage, see SKILL.md_
|