pdmt5 0.2.2__tar.gz → 0.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. pdmt5-0.2.4/.agents/skills/local-qa/SKILL.md +22 -0
  2. {pdmt5-0.2.2/.claude → pdmt5-0.2.4/.agents}/skills/local-qa/scripts/qa.sh +1 -1
  3. pdmt5-0.2.4/.agents/skills/metatrader5-docs/SKILL.md +107 -0
  4. pdmt5-0.2.2/.codex/prompts/speckit.analyze.md → pdmt5-0.2.4/.agents/skills/speckit-analyze/SKILL.md +22 -13
  5. pdmt5-0.2.4/.agents/skills/speckit-baseline/SKILL.md +114 -0
  6. pdmt5-0.2.2/.codex/prompts/speckit.checklist.md → pdmt5-0.2.4/.agents/skills/speckit-checklist/SKILL.md +23 -13
  7. pdmt5-0.2.2/.codex/prompts/speckit.clarify.md → pdmt5-0.2.4/.agents/skills/speckit-clarify/SKILL.md +28 -16
  8. pdmt5-0.2.2/.claude/commands/speckit.constitution.md → pdmt5-0.2.4/.agents/skills/speckit-constitution/SKILL.md +30 -11
  9. pdmt5-0.2.2/.codex/prompts/speckit.implement.md → pdmt5-0.2.4/.agents/skills/speckit-implement/SKILL.md +20 -7
  10. pdmt5-0.2.2/.claude/commands/speckit.plan.md → pdmt5-0.2.4/.agents/skills/speckit-plan/SKILL.md +31 -16
  11. pdmt5-0.2.2/.claude/commands/speckit.specify.md → pdmt5-0.2.4/.agents/skills/speckit-specify/SKILL.md +33 -22
  12. pdmt5-0.2.2/.claude/commands/speckit.tasks.md → pdmt5-0.2.4/.agents/skills/speckit-tasks/SKILL.md +25 -16
  13. pdmt5-0.2.2/.claude/commands/speckit.taskstoissues.md → pdmt5-0.2.4/.agents/skills/speckit-taskstoissues/SKILL.md +20 -8
  14. {pdmt5-0.2.2 → pdmt5-0.2.4}/.claude/settings.json +4 -1
  15. pdmt5-0.2.4/.github/workflows/ci.yml +77 -0
  16. pdmt5-0.2.4/.github/workflows/claude.yml +57 -0
  17. pdmt5-0.2.4/.github/workflows/release.yml +44 -0
  18. {pdmt5-0.2.2 → pdmt5-0.2.4}/.gitignore +0 -3
  19. pdmt5-0.2.4/AGENTS.md +81 -0
  20. {pdmt5-0.2.2 → pdmt5-0.2.4}/PKG-INFO +8 -5
  21. {pdmt5-0.2.2 → pdmt5-0.2.4}/README.md +7 -4
  22. {pdmt5-0.2.2 → pdmt5-0.2.4}/docs/api/dataframe.md +18 -12
  23. {pdmt5-0.2.2 → pdmt5-0.2.4}/docs/api/index.md +6 -3
  24. {pdmt5-0.2.2 → pdmt5-0.2.4}/docs/api/trading.md +15 -13
  25. {pdmt5-0.2.2 → pdmt5-0.2.4}/docs/api/utils.md +7 -3
  26. {pdmt5-0.2.2 → pdmt5-0.2.4}/docs/index.md +9 -7
  27. {pdmt5-0.2.2 → pdmt5-0.2.4}/pdmt5/dataframe.py +81 -52
  28. {pdmt5-0.2.2 → pdmt5-0.2.4}/pdmt5/mt5.py +63 -56
  29. {pdmt5-0.2.2 → pdmt5-0.2.4}/pdmt5/trading.py +25 -22
  30. {pdmt5-0.2.2 → pdmt5-0.2.4}/pdmt5/utils.py +27 -13
  31. {pdmt5-0.2.2 → pdmt5-0.2.4}/pyproject.toml +1 -6
  32. pdmt5-0.2.4/specs/042-mt5-core-client/checklists/requirements.md +23 -0
  33. pdmt5-0.2.4/specs/042-mt5-core-client/contracts/openapi.yaml +814 -0
  34. pdmt5-0.2.4/specs/042-mt5-core-client/data-model.md +60 -0
  35. pdmt5-0.2.4/specs/042-mt5-core-client/plan.md +72 -0
  36. pdmt5-0.2.4/specs/042-mt5-core-client/quickstart.md +38 -0
  37. pdmt5-0.2.4/specs/042-mt5-core-client/research.md +30 -0
  38. pdmt5-0.2.4/specs/042-mt5-core-client/tasks.md +75 -0
  39. pdmt5-0.2.4/specs/043-mt5-dataframe-client/checklists/requirements.md +21 -0
  40. pdmt5-0.2.4/specs/043-mt5-dataframe-client/contracts/openapi.yaml +814 -0
  41. pdmt5-0.2.4/specs/043-mt5-dataframe-client/data-model.md +47 -0
  42. pdmt5-0.2.4/specs/043-mt5-dataframe-client/plan.md +73 -0
  43. pdmt5-0.2.4/specs/043-mt5-dataframe-client/quickstart.md +43 -0
  44. pdmt5-0.2.4/specs/043-mt5-dataframe-client/research.md +30 -0
  45. pdmt5-0.2.4/specs/043-mt5-dataframe-client/tasks.md +74 -0
  46. pdmt5-0.2.4/specs/044-mt5-trading-client/checklists/requirements.md +21 -0
  47. pdmt5-0.2.4/specs/044-mt5-trading-client/contracts/openapi.yaml +814 -0
  48. pdmt5-0.2.4/specs/044-mt5-trading-client/data-model.md +49 -0
  49. pdmt5-0.2.4/specs/044-mt5-trading-client/plan.md +73 -0
  50. pdmt5-0.2.4/specs/044-mt5-trading-client/quickstart.md +40 -0
  51. pdmt5-0.2.4/specs/044-mt5-trading-client/research.md +30 -0
  52. pdmt5-0.2.4/specs/044-mt5-trading-client/tasks.md +71 -0
  53. pdmt5-0.2.4/specs/046-mt5-client-operations/checklists/requirements.md +30 -0
  54. pdmt5-0.2.4/specs/046-mt5-client-operations/contracts/openapi.yaml +814 -0
  55. pdmt5-0.2.4/specs/046-mt5-client-operations/data-model.md +53 -0
  56. pdmt5-0.2.4/specs/046-mt5-client-operations/plan.md +75 -0
  57. pdmt5-0.2.4/specs/046-mt5-client-operations/quickstart.md +52 -0
  58. pdmt5-0.2.4/specs/046-mt5-client-operations/research.md +30 -0
  59. pdmt5-0.2.4/specs/046-mt5-client-operations/spec.md +131 -0
  60. pdmt5-0.2.4/specs/046-mt5-client-operations/tasks.md +79 -0
  61. pdmt5-0.2.4/specs/047-mt5-client-operations/checklists/requirements.md +30 -0
  62. pdmt5-0.2.4/specs/047-mt5-client-operations/contracts/openapi.yaml +814 -0
  63. pdmt5-0.2.4/specs/047-mt5-client-operations/data-model.md +53 -0
  64. pdmt5-0.2.4/specs/047-mt5-client-operations/plan.md +72 -0
  65. pdmt5-0.2.4/specs/047-mt5-client-operations/quickstart.md +51 -0
  66. pdmt5-0.2.4/specs/047-mt5-client-operations/research.md +30 -0
  67. pdmt5-0.2.4/specs/047-mt5-client-operations/spec.md +99 -0
  68. pdmt5-0.2.4/specs/047-mt5-client-operations/tasks.md +74 -0
  69. {pdmt5-0.2.2 → pdmt5-0.2.4}/tests/test_dataframe.py +127 -77
  70. {pdmt5-0.2.2 → pdmt5-0.2.4}/tests/test_mt5.py +11 -13
  71. {pdmt5-0.2.2 → pdmt5-0.2.4}/tests/test_trading.py +126 -96
  72. {pdmt5-0.2.2 → pdmt5-0.2.4}/tests/test_utils.py +3 -5
  73. {pdmt5-0.2.2 → pdmt5-0.2.4}/uv.lock +8 -8
  74. pdmt5-0.2.2/.claude/commands/speckit.analyze.md +0 -184
  75. pdmt5-0.2.2/.claude/commands/speckit.checklist.md +0 -294
  76. pdmt5-0.2.2/.claude/commands/speckit.clarify.md +0 -181
  77. pdmt5-0.2.2/.claude/commands/speckit.implement.md +0 -135
  78. pdmt5-0.2.2/.claude/skills/codex-ask/SKILL.md +0 -187
  79. pdmt5-0.2.2/.claude/skills/codex-exec/SKILL.md +0 -313
  80. pdmt5-0.2.2/.claude/skills/codex-review/SKILL.md +0 -357
  81. pdmt5-0.2.2/.claude/skills/codex-search/SKILL.md +0 -431
  82. pdmt5-0.2.2/.claude/skills/local-qa/SKILL.md +0 -19
  83. pdmt5-0.2.2/.claude/skills/speckit-analyze/SKILL.md +0 -86
  84. pdmt5-0.2.2/.claude/skills/speckit-checklist/SKILL.md +0 -106
  85. pdmt5-0.2.2/.claude/skills/speckit-clarify/SKILL.md +0 -99
  86. pdmt5-0.2.2/.claude/skills/speckit-constitution/SKILL.md +0 -89
  87. pdmt5-0.2.2/.claude/skills/speckit-implement/SKILL.md +0 -78
  88. pdmt5-0.2.2/.claude/skills/speckit-plan/SKILL.md +0 -71
  89. pdmt5-0.2.2/.claude/skills/speckit-specify/SKILL.md +0 -75
  90. pdmt5-0.2.2/.claude/skills/speckit-tasks/SKILL.md +0 -79
  91. pdmt5-0.2.2/.claude/skills/speckit-taskstoissues/SKILL.md +0 -131
  92. pdmt5-0.2.2/.codex/prompts/speckit.constitution.md +0 -82
  93. pdmt5-0.2.2/.codex/prompts/speckit.plan.md +0 -89
  94. pdmt5-0.2.2/.codex/prompts/speckit.specify.md +0 -256
  95. pdmt5-0.2.2/.codex/prompts/speckit.tasks.md +0 -137
  96. pdmt5-0.2.2/.codex/prompts/speckit.taskstoissues.md +0 -30
  97. pdmt5-0.2.2/.github/workflows/ci.yml +0 -136
  98. pdmt5-0.2.2/AGENTS.md +0 -174
  99. {pdmt5-0.2.2 → pdmt5-0.2.4}/.claude/agents/codex.md +0 -0
  100. {pdmt5-0.2.2 → pdmt5-0.2.4}/.github/FUNDING.yml +0 -0
  101. {pdmt5-0.2.2 → pdmt5-0.2.4}/.github/dependabot.yml +0 -0
  102. {pdmt5-0.2.2 → pdmt5-0.2.4}/.github/renovate.json +0 -0
  103. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/memory/constitution.md +0 -0
  104. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  105. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/scripts/bash/common.sh +0 -0
  106. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/scripts/bash/create-new-feature.sh +0 -0
  107. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/scripts/bash/setup-plan.sh +0 -0
  108. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/scripts/bash/update-agent-context.sh +0 -0
  109. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/templates/agent-file-template.md +0 -0
  110. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/templates/checklist-template.md +0 -0
  111. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/templates/plan-template.md +0 -0
  112. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/templates/spec-template.md +0 -0
  113. {pdmt5-0.2.2 → pdmt5-0.2.4}/.specify/templates/tasks-template.md +0 -0
  114. {pdmt5-0.2.2 → pdmt5-0.2.4}/CLAUDE.md +0 -0
  115. {pdmt5-0.2.2 → pdmt5-0.2.4}/LICENSE +0 -0
  116. {pdmt5-0.2.2 → pdmt5-0.2.4}/docs/api/mt5.md +0 -0
  117. {pdmt5-0.2.2 → pdmt5-0.2.4}/mkdocs.yml +0 -0
  118. {pdmt5-0.2.2 → pdmt5-0.2.4}/pdmt5/__init__.py +0 -0
  119. {pdmt5-0.2.2 → pdmt5-0.2.4}/specs/042-mt5-core-client/spec.md +0 -0
  120. {pdmt5-0.2.2 → pdmt5-0.2.4}/specs/043-mt5-dataframe-client/spec.md +0 -0
  121. {pdmt5-0.2.2 → pdmt5-0.2.4}/specs/044-mt5-trading-client/spec.md +0 -0
  122. {pdmt5-0.2.2 → pdmt5-0.2.4}/specs/045-mt5-utils/spec.md +0 -0
  123. {pdmt5-0.2.2 → pdmt5-0.2.4}/tests/__init__.py +0 -0
  124. {pdmt5-0.2.2 → pdmt5-0.2.4}/tests/test_init.py +0 -0
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: local-qa
3
+ description: Run local QA including formatting, linting, and testing for the repository. Use whenever any file has been updated.
4
+ disable-model-invocation: false
5
+ ---
6
+
7
+ # Local QA (format, lint, and test)
8
+
9
+ Run the local QA script `scripts/qa.sh` in this skill.
10
+
11
+ ## Procedure
12
+
13
+ - Execute the script exactly as shown above when this skill is triggered.
14
+ - Capture and summarize key output (success/failure, major warnings, and any files modified).
15
+ - If the script fails due to missing tooling (`command not found`, missing executable, or equivalent), install the missing tool(s) and rerun `./scripts/qa.sh`.
16
+ - Install tools using this order of preference:
17
+ 1. Use the project's package manager when applicable (`uv`/`poetry` for Python, package manager scripts/dependencies for Node.js).
18
+ 2. Use a system package manager (`brew` on macOS, `apt` on Debian/Ubuntu) when project-local install is not applicable.
19
+ 3. Use language-specific installers as fallback (`pipx`/`pip`, `npm`, `go install`, etc.).
20
+ - If multiple tools are missing, repeat install -> rerun until QA completes or you hit a blocker.
21
+ - If installation fails or requires unavailable privileges, report what was attempted, the exact failure, and stop.
22
+ - Do not run unrelated commands; only run commands needed for QA and missing-tool installation.
@@ -10,7 +10,7 @@ uv run pyright .
10
10
  uv run pytest
11
11
 
12
12
  # Markdown
13
- prettier --write './**/*.md'
13
+ npx -y prettier --write './**/*.md'
14
14
 
15
15
  # GitHub Actions
16
16
  zizmor --fix=safe .github/workflows
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: metatrader5-docs
3
+ description: Search the official MQL5 documentation for MetaTrader5 Python package usage. Use when the user needs help with MT5 Python API functions, parameters, return values, or usage examples.
4
+ ---
5
+
6
+ # MetaTrader5 Python Documentation Search
7
+
8
+ Search the official MQL5 documentation at `https://www.mql5.com/en/docs/python_metatrader5` for MetaTrader5 Python package usage.
9
+
10
+ ## Agent-Agnostic Compatibility
11
+
12
+ - Prefer the agent's native web-fetch capability (for example: `WebFetch`, browser tool, or built-in URL retrieval).
13
+ - If no native fetch tool exists, use CLI fallback (`curl` or `wget`) to retrieve docs pages.
14
+ - If network access is blocked, state the limitation and provide the best guidance from known MT5 docs structure.
15
+
16
+ ## Procedure
17
+
18
+ 1. Identify the MT5 Python function(s) relevant to the user's query.
19
+ 2. Fetch the corresponding documentation page(s) using the available web retrieval method.
20
+ 3. Summarize the function signature, parameters, return value, and usage examples.
21
+ 4. If the user's query is general or unclear, fetch the index page first to find the right function.
22
+
23
+ ## Documentation URL Map
24
+
25
+ Base URL: `https://www.mql5.com/en/docs/python_metatrader5`
26
+
27
+ | Function | URL Path |
28
+ | ---------------------- | --------------------------- |
29
+ | `initialize` | `/mt5initialize_py` |
30
+ | `login` | `/mt5login_py` |
31
+ | `shutdown` | `/mt5shutdown_py` |
32
+ | `version` | `/mt5version_py` |
33
+ | `last_error` | `/mt5lasterror_py` |
34
+ | `account_info` | `/mt5accountinfo_py` |
35
+ | `terminal_info` | `/mt5terminalinfo_py` |
36
+ | `symbols_total` | `/mt5symbolstotal_py` |
37
+ | `symbols_get` | `/mt5symbolsget_py` |
38
+ | `symbol_info` | `/mt5symbolinfo_py` |
39
+ | `symbol_info_tick` | `/mt5symbolinfotick_py` |
40
+ | `symbol_select` | `/mt5symbolselect_py` |
41
+ | `market_book_add` | `/mt5marketbookadd_py` |
42
+ | `market_book_get` | `/mt5marketbookget_py` |
43
+ | `market_book_release` | `/mt5marketbookrelease_py` |
44
+ | `copy_rates_from` | `/mt5copyratesfrom_py` |
45
+ | `copy_rates_from_pos` | `/mt5copyratesfrompos_py` |
46
+ | `copy_rates_range` | `/mt5copyratesrange_py` |
47
+ | `copy_ticks_from` | `/mt5copyticksfrom_py` |
48
+ | `copy_ticks_range` | `/mt5copyticksrange_py` |
49
+ | `orders_total` | `/mt5orderstotal_py` |
50
+ | `orders_get` | `/mt5ordersget_py` |
51
+ | `order_calc_margin` | `/mt5ordercalcmargin_py` |
52
+ | `order_calc_profit` | `/mt5ordercalcprofit_py` |
53
+ | `order_check` | `/mt5ordercheck_py` |
54
+ | `order_send` | `/mt5ordersend_py` |
55
+ | `positions_total` | `/mt5positionstotal_py` |
56
+ | `positions_get` | `/mt5positionsget_py` |
57
+ | `history_orders_total` | `/mt5historyorderstotal_py` |
58
+ | `history_orders_get` | `/mt5historyordersget_py` |
59
+ | `history_deals_total` | `/mt5historydealstotal_py` |
60
+ | `history_deals_get` | `/mt5historydealsget_py` |
61
+
62
+ ## Function Categories
63
+
64
+ Use these categories to narrow down the user's query:
65
+
66
+ - **Connection**: `initialize`, `login`, `shutdown`
67
+ - **Information**: `version`, `last_error`, `account_info`, `terminal_info`
68
+ - **Symbols**: `symbols_total`, `symbols_get`, `symbol_info`, `symbol_info_tick`, `symbol_select`
69
+ - **Market Depth**: `market_book_add`, `market_book_get`, `market_book_release`
70
+ - **Market Data**: `copy_rates_from`, `copy_rates_from_pos`, `copy_rates_range`, `copy_ticks_from`, `copy_ticks_range`
71
+ - **Orders**: `orders_total`, `orders_get`, `order_calc_margin`, `order_calc_profit`, `order_check`, `order_send`
72
+ - **Positions**: `positions_total`, `positions_get`
73
+ - **History**: `history_orders_total`, `history_orders_get`, `history_deals_total`, `history_deals_get`
74
+
75
+ ## Fetching Documentation
76
+
77
+ For each relevant function, retrieve its documentation using whichever method the agent supports:
78
+
79
+ - Native fetch tools (preferred).
80
+ - Browser automation tools.
81
+ - Shell fallback, for example:
82
+
83
+ ```bash
84
+ curl -fsSL "https://www.mql5.com/en/docs/python_metatrader5<url_path>"
85
+ ```
86
+
87
+ Extraction target for each page:
88
+
89
+ - Function signature with all parameters.
90
+ - Parameter descriptions and types.
91
+ - Return value description.
92
+ - Notes/remarks.
93
+ - Full code example.
94
+
95
+ When the query spans multiple functions, fetch pages in parallel when the agent/tooling supports it.
96
+
97
+ ## Response Format
98
+
99
+ Present the results as:
100
+
101
+ 1. **Function**: `MetaTrader5.function_name()`
102
+ 2. **Description**: What the function does
103
+ 3. **Signature**: Full call signature with parameters
104
+ 4. **Parameters**: Table or list of parameter names, types, and descriptions
105
+ 5. **Returns**: Return type and description
106
+ 6. **Example**: Code example from the documentation
107
+ 7. **Source**: Link to the official documentation page
@@ -1,26 +1,31 @@
1
1
  ---
2
+ name: speckit-analyze
2
3
  description: Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
3
4
  ---
4
5
 
5
- ## User Input
6
+ # Spec Kit Analyze Skill
6
7
 
7
- ```text
8
- $ARGUMENTS
9
- ```
8
+ ## When to Use
10
9
 
11
- You **MUST** consider the user input before proceeding (if not empty).
10
+ - You have `spec.md`, `plan.md`, and `tasks.md` and need a read-only consistency analysis before implementation.
11
+
12
+ ## Inputs
13
+
14
+ - `specs/<feature>/spec.md`, `plan.md`, `tasks.md`
15
+ - `.specify/memory/constitution.md`
16
+ - Any user concerns or focus areas from the request
12
17
 
13
18
  ## Goal
14
19
 
15
- Identify inconsistencies, duplications, ambiguities, and underspecified items across the three core artifacts (`spec.md`, `plan.md`, `tasks.md`) before implementation. This command MUST run only after `/speckit.tasks` has successfully produced a complete `tasks.md`.
20
+ Identify inconsistencies, duplications, ambiguities, and underspecified items across the three core artifacts (`spec.md`, `plan.md`, `tasks.md`) before implementation. This skill MUST run only after a complete `tasks.md` exists (typically after speckit-tasks).
16
21
 
17
22
  ## Operating Constraints
18
23
 
19
- **STRICTLY READ-ONLY**: Do **not** modify any files. Output a structured analysis report. Offer an optional remediation plan (user must explicitly approve before any follow-up editing commands would be invoked manually).
24
+ **STRICTLY READ-ONLY**: Do **not** modify any files. Output a structured analysis report. Offer an optional remediation plan (user must explicitly approve before any follow-up edits are performed manually).
20
25
 
21
- **Constitution Authority**: The project constitution (`.specify/memory/constitution.md`) is **non-negotiable** within this analysis scope. Constitution conflicts are automatically CRITICAL and require adjustment of the spec, plan, or tasks—not dilution, reinterpretation, or silent ignoring of the principle. If a principle itself needs to change, that must occur in a separate, explicit constitution update outside `/speckit.analyze`.
26
+ **Constitution Authority**: The project constitution (`.specify/memory/constitution.md`) is **non-negotiable** within this analysis scope. Constitution conflicts are automatically CRITICAL and require adjustment of the spec, plan, or tasks—not dilution, reinterpretation, or silent ignoring of the principle. If a principle itself needs to change, that must occur in a separate, explicit constitution update outside this skill.
22
27
 
23
- ## Execution Steps
28
+ ## Workflow
24
29
 
25
30
  ### 1. Initialize Analysis Context
26
31
 
@@ -30,7 +35,7 @@ Run `.specify/scripts/bash/check-prerequisites.sh --json --require-tasks --inclu
30
35
  - PLAN = FEATURE_DIR/plan.md
31
36
  - TASKS = FEATURE_DIR/tasks.md
32
37
 
33
- Abort with an error message if any required file is missing (instruct the user to run missing prerequisite command).
38
+ Abort with an error message if any required file is missing (instruct the user to run the missing prerequisite skill or script).
34
39
  For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").
35
40
 
36
41
  ### 2. Load Artifacts (Progressive Disclosure)
@@ -154,14 +159,18 @@ Output a Markdown report (no file writes) with the following structure:
154
159
 
155
160
  At end of report, output a concise Next Actions block:
156
161
 
157
- - If CRITICAL issues exist: Recommend resolving before `/speckit.implement`
162
+ - If CRITICAL issues exist: Recommend resolving before speckit-implement
158
163
  - If only LOW/MEDIUM: User may proceed, but provide improvement suggestions
159
- - Provide explicit command suggestions: e.g., "Run /speckit.specify with refinement", "Run /speckit.plan to adjust architecture", "Manually edit tasks.md to add coverage for 'performance-metrics'"
164
+ - Provide explicit next-step suggestions: e.g., "Run speckit-specify to refine requirements", "Run speckit-plan to adjust architecture", "Manually edit tasks.md to add coverage for 'performance-metrics'"
160
165
 
161
166
  ### 8. Offer Remediation
162
167
 
163
168
  Ask the user: "Would you like me to suggest concrete remediation edits for the top N issues?" (Do NOT apply them automatically.)
164
169
 
170
+ ## Outputs
171
+
172
+ - Read-only analysis report in the response (no file writes)
173
+
165
174
  ## Operating Principles
166
175
 
167
176
  ### Context Efficiency
@@ -181,4 +190,4 @@ Ask the user: "Would you like me to suggest concrete remediation edits for the t
181
190
 
182
191
  ## Context
183
192
 
184
- $ARGUMENTS
193
+ the user's request and any stated focus areas
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: speckit-baseline
3
+ description: Generate feature specifications by analyzing existing source code.
4
+ ---
5
+
6
+ # Spec Kit Baseline Skill
7
+
8
+ ## When to Use
9
+
10
+ - You need a spec for existing or legacy code.
11
+ - You want to document a feature before refactoring.
12
+ - You inherited a codebase without written requirements.
13
+
14
+ ## Inputs
15
+
16
+ - A target path, file list, or glob pattern describing the code to analyze.
17
+ - Repo context with `.specify/` scripts and templates.
18
+
19
+ If the target is missing or ambiguous, ask a focused question before continuing.
20
+
21
+ ## Goal
22
+
23
+ Generate a technology-agnostic spec for existing code, then create the feature branch/spec file using the standard Spec Kit templates.
24
+
25
+ ## Workflow
26
+
27
+ 1. **Parse target input**: Identify files, directories, or patterns to analyze.
28
+ - Accept file paths, glob patterns, or directory paths.
29
+ - If empty: stop and ask for a concrete target.
30
+
31
+ 2. **Discover and read source files**:
32
+ - Expand globs to a file list.
33
+ - Read file contents for analysis.
34
+ - Identify primary language(s) and frameworks.
35
+ - Map key file relationships and dependencies.
36
+
37
+ 3. **Analyze code structure**:
38
+ - Identify entry points and public interfaces.
39
+ - Extract function/method signatures and behaviors.
40
+ - Find data models and entities.
41
+ - Detect API endpoints and routes.
42
+ - Identify user-facing functionality.
43
+
44
+ 4. **Generate a short name** (2-4 words) from the analyzed code:
45
+ - Use action-noun format (e.g., "user-auth", "payment-processing").
46
+ - Base on primary functionality discovered.
47
+ - Preserve technical terms where meaningful.
48
+
49
+ 5. **Create the feature branch and spec file**:
50
+ - Find the highest existing feature number for this short name (branches/specs).
51
+ - Run `.specify/scripts/bash/create-new-feature.sh --json` with the calculated number and short name.
52
+ - Read BRANCH_NAME, FEATURE_DIR, and SPEC_FILE paths from the script JSON output.
53
+ - For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").
54
+
55
+ 6. **Load the spec template** from `.specify/templates/spec-template.md`.
56
+
57
+ 7. **Draft the specification** using the template structure:
58
+ - **User Stories**: Infer from user-facing code paths and interactions.
59
+ - **Acceptance Scenarios**: Derive from validation logic, error handling, and tests.
60
+ - **Functional Requirements**: Extract from business rules and constraints.
61
+ - **Key Entities**: Identify from data models and schemas.
62
+ - **Success Criteria**: Infer from metrics, logging, or performance-related code.
63
+ - **Assumptions**: Document inferences made during analysis.
64
+
65
+ 8. **Abstract implementation details**:
66
+ - Convert technical patterns to user-focused requirements.
67
+ - Remove framework-specific terminology.
68
+ - Focus on WHAT the code does, not HOW it does it.
69
+
70
+ 9. **Create spec quality checklist** at `FEATURE_DIR/checklists/requirements.md`.
71
+
72
+ 10. **Report completion** with:
73
+ - Branch name and spec file path.
74
+ - Summary of analyzed files.
75
+ - Key features discovered.
76
+ - Areas needing clarification or review.
77
+
78
+ ## Outputs
79
+
80
+ - `specs/<feature>/spec.md`
81
+ - `specs/<feature>/checklists/requirements.md`
82
+
83
+ ## Key rules
84
+
85
+ - Focus on extracting WHAT and WHY from HOW.
86
+ - Abstract away implementation details in the generated spec.
87
+ - Document assumptions made during code analysis.
88
+ - Flag areas where code behavior is unclear.
89
+ - Preserve discovered business rules and constraints.
90
+ - Use `[NEEDS CLARIFICATION]` for ambiguous code sections (max 3).
91
+ - Generated specs should be validated by someone who knows the feature.
92
+
93
+ ## Examples
94
+
95
+ **Code Pattern → Spec Requirement**:
96
+
97
+ - `if (user.role === 'admin')` → "System MUST restrict action to administrator users"
98
+ - `password.length >= 8` → "Passwords MUST be at least 8 characters"
99
+ - `cache.set(key, value, 3600)` → "System MUST cache results for improved performance"
100
+ - `try { ... } catch (e) { notify(e) }` → "System MUST notify users when errors occur"
101
+
102
+ **Code Pattern → User Story**:
103
+
104
+ - Login endpoint with OAuth → "As a user, I can sign in using my social account"
105
+ - Shopping cart logic → "As a customer, I can add items to my cart for later purchase"
106
+ - Report generation → "As an analyst, I can generate reports on system activity"
107
+
108
+ ## Next Steps
109
+
110
+ After generating spec.md:
111
+
112
+ - **Clarify** with domain experts using speckit-clarify.
113
+ - **Plan** modernization/refactoring with speckit-plan.
114
+ - **Compare** the generated spec with actual requirements to identify gaps.
@@ -1,7 +1,21 @@
1
1
  ---
2
+ name: speckit-checklist
2
3
  description: Generate a custom checklist for the current feature based on user requirements.
3
4
  ---
4
5
 
6
+ # Spec Kit Checklist Skill
7
+
8
+ ## When to Use
9
+
10
+ - You need a requirements-quality checklist tailored to a feature or domain.
11
+
12
+ ## Inputs
13
+
14
+ - The user's request describing the checklist focus and scope.
15
+ - Existing artifacts (spec/plan/tasks) for context when available.
16
+
17
+ If the request is empty or unclear, ask a targeted question before continuing.
18
+
5
19
  ## Checklist Purpose: "Unit Tests for English"
6
20
 
7
21
  **CRITICAL CONCEPT**: Checklists are **UNIT TESTS FOR REQUIREMENTS WRITING** - they validate the quality, clarity, and completeness of requirements in a given domain.
@@ -23,15 +37,7 @@ description: Generate a custom checklist for the current feature based on user r
23
37
 
24
38
  **Metaphor**: If your spec is code written in English, the checklist is its unit test suite. You're testing whether the requirements are well-written, complete, unambiguous, and ready for implementation - NOT whether the implementation works.
25
39
 
26
- ## User Input
27
-
28
- ```text
29
- $ARGUMENTS
30
- ```
31
-
32
- You **MUST** consider the user input before proceeding (if not empty).
33
-
34
- ## Execution Steps
40
+ ## Workflow
35
41
 
36
42
  1. **Setup**: Run `.specify/scripts/bash/check-prerequisites.sh --json` from repo root and parse JSON for FEATURE_DIR and AVAILABLE_DOCS list.
37
43
  - All file paths must be absolute.
@@ -40,7 +46,7 @@ You **MUST** consider the user input before proceeding (if not empty).
40
46
  2. **Clarify intent (dynamic)**: Derive up to THREE initial contextual clarifying questions (no pre-baked catalog). They MUST:
41
47
  - Be generated from the user's phrasing + extracted signals from spec/plan/tasks
42
48
  - Only ask about information that materially changes checklist content
43
- - Be skipped individually if already unambiguous in `$ARGUMENTS`
49
+ - Be skipped individually if already unambiguous in the user's request
44
50
  - Prefer precision over breadth
45
51
 
46
52
  Generation algorithm:
@@ -69,7 +75,7 @@ You **MUST** consider the user input before proceeding (if not empty).
69
75
 
70
76
  Output the questions (label Q1/Q2/Q3). After answers: if ≥2 scenario classes (Alternate / Exception / Recovery / Non-Functional domain) remain unclear, you MAY ask up to TWO more targeted follow‑ups (Q4/Q5) with a one-line justification each (e.g., "Unresolved recovery path risk"). Do not exceed five total questions. Skip escalation if user explicitly declines more.
71
77
 
72
- 3. **Understand user request**: Combine `$ARGUMENTS` + clarifying answers:
78
+ 3. **Understand user request**: Combine the user's request + clarifying answers:
73
79
  - Derive checklist theme (e.g., security, review, deploy, ux)
74
80
  - Consolidate explicit must-have items mentioned by user
75
81
  - Map focus selections to category scaffolding
@@ -93,7 +99,7 @@ You **MUST** consider the user input before proceeding (if not empty).
93
99
  - Format: `[domain].md`
94
100
  - If file exists, append to existing file
95
101
  - Number items sequentially starting from CHK001
96
- - Each `/speckit.checklist` run creates a NEW file (never overwrites existing checklists)
102
+ - Each checklist run creates a NEW file (never overwrites existing checklists)
97
103
 
98
104
  **CORE PRINCIPLE - Test the Requirements, Not the Implementation**:
99
105
  Every checklist item MUST evaluate the REQUIREMENTS THEMSELVES for:
@@ -211,7 +217,7 @@ You **MUST** consider the user input before proceeding (if not empty).
211
217
  - Actor/timing
212
218
  - Any explicit user-specified must-have items incorporated
213
219
 
214
- **Important**: Each `/speckit.checklist` command invocation creates a checklist file using short, descriptive names unless file already exists. This allows:
220
+ **Important**: Each checklist run creates a checklist file using short, descriptive names unless the file already exists. This allows:
215
221
 
216
222
  - Multiple checklists of different types (e.g., `ux.md`, `test.md`, `security.md`)
217
223
  - Simple, memorable filenames that indicate checklist purpose
@@ -292,3 +298,7 @@ Sample items:
292
298
  - Correct: Validation of requirement quality
293
299
  - Wrong: "Does it do X?"
294
300
  - Correct: "Is X clearly specified?"
301
+
302
+ ## Outputs
303
+
304
+ - `specs/<feature>/checklists/<domain>.md` (new checklist file per run)
@@ -1,24 +1,26 @@
1
1
  ---
2
+ name: speckit-clarify
2
3
  description: Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
3
- handoffs:
4
- - label: Build Technical Plan
5
- agent: speckit.plan
6
- prompt: Create a plan for the spec. I am building with...
7
4
  ---
8
5
 
9
- ## User Input
6
+ # Spec Kit Clarify Skill
10
7
 
11
- ```text
12
- $ARGUMENTS
13
- ```
8
+ ## When to Use
14
9
 
15
- You **MUST** consider the user input before proceeding (if not empty).
10
+ - The feature spec exists but needs targeted clarification before planning.
16
11
 
17
- ## Outline
12
+ ## Inputs
13
+
14
+ - The current feature spec in `specs/<feature>/spec.md`.
15
+ - The user's clarification intent or constraints from the request.
16
+
17
+ If the request is empty or the spec is missing, ask a targeted question before proceeding.
18
+
19
+ ## Workflow
18
20
 
19
21
  Goal: Detect and reduce ambiguity or missing decision points in the active feature specification and record the clarifications directly in the spec file.
20
22
 
21
- Note: This clarification workflow is expected to run (and be completed) BEFORE invoking `/speckit.plan`. If the user explicitly states they are skipping clarification (e.g., exploratory spike), you may proceed, but must warn that downstream rework risk increases.
23
+ Note: This clarification workflow is expected to run (and be completed) BEFORE the speckit-plan skill. If the user explicitly states they are skipping clarification (e.g., exploratory spike), you may proceed, but must warn that downstream rework risk increases.
22
24
 
23
25
  Execution steps:
24
26
 
@@ -26,7 +28,7 @@ Execution steps:
26
28
  - `FEATURE_DIR`
27
29
  - `FEATURE_SPEC`
28
30
  - (Optionally capture `IMPL_PLAN`, `TASKS` for future chained flows.)
29
- - If JSON parsing fails, abort and instruct user to re-run `/speckit.specify` or verify feature branch environment.
31
+ - If JSON parsing fails, abort and instruct the user to re-run speckit-specify or verify the feature branch environment.
30
32
  - For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").
31
33
 
32
34
  2. Load the current spec file. Perform a structured ambiguity & coverage scan using this taxonomy. For each category, mark status: Clear / Partial / Missing. Produce an internal coverage map used for prioritization (do not output raw map unless no questions will be asked).
@@ -165,17 +167,27 @@ Execution steps:
165
167
  - Path to updated spec.
166
168
  - Sections touched (list names).
167
169
  - Coverage summary table listing each taxonomy category with Status: Resolved (was Partial/Missing and addressed), Deferred (exceeds question quota or better suited for planning), Clear (already sufficient), Outstanding (still Partial/Missing but low impact).
168
- - If any Outstanding or Deferred remain, recommend whether to proceed to `/speckit.plan` or run `/speckit.clarify` again later post-plan.
169
- - Suggested next command.
170
+ - If any Outstanding or Deferred remain, recommend whether to proceed to speckit-plan or run speckit-clarify again later post-plan.
171
+ - Suggested next step.
170
172
 
171
173
  Behavior rules:
172
174
 
173
175
  - If no meaningful ambiguities found (or all potential questions would be low-impact), respond: "No critical ambiguities detected worth formal clarification." and suggest proceeding.
174
- - If spec file missing, instruct user to run `/speckit.specify` first (do not create a new spec here).
176
+ - If spec file missing, instruct the user to run speckit-specify first (do not create a new spec here).
175
177
  - Never exceed 5 total asked questions (clarification retries for a single question do not count as new questions).
176
178
  - Avoid speculative tech stack questions unless the absence blocks functional clarity.
177
179
  - Respect user early termination signals ("stop", "done", "proceed").
178
180
  - If no questions asked due to full coverage, output a compact coverage summary (all categories Clear) then suggest advancing.
179
181
  - If quota reached with unresolved high-impact categories remaining, explicitly flag them under Deferred with rationale.
180
182
 
181
- Context for prioritization: $ARGUMENTS
183
+ Context for prioritization: the user's request and any stated constraints
184
+
185
+ ## Outputs
186
+
187
+ - Updated `specs/<feature>/spec.md` with clarifications appended and integrated
188
+
189
+ ## Next Steps
190
+
191
+ After clarifications are resolved:
192
+
193
+ - **Plan** implementation with speckit-plan.
@@ -1,20 +1,22 @@
1
1
  ---
2
+ name: speckit-constitution
2
3
  description: Create or update the project constitution from interactive or provided principle inputs, ensuring all dependent templates stay in sync.
3
- handoffs:
4
- - label: Build Specification
5
- agent: speckit.specify
6
- prompt: Implement the feature specification based on the updated constitution. I want to build...
7
4
  ---
8
5
 
9
- ## User Input
6
+ # Spec Kit Constitution Skill
10
7
 
11
- ```text
12
- $ARGUMENTS
13
- ```
8
+ ## When to Use
14
9
 
15
- You **MUST** consider the user input before proceeding (if not empty).
10
+ - Initial project setup or when governance principles need updates.
16
11
 
17
- ## Outline
12
+ ## Inputs
13
+
14
+ - User-provided principles or amendments.
15
+ - Existing `.specify/memory/constitution.md` and templates.
16
+
17
+ If the request is missing or ambiguous, ask focused questions before proceeding.
18
+
19
+ ## Workflow
18
20
 
19
21
  You are updating the project constitution at `.specify/memory/constitution.md`. This file is a TEMPLATE containing placeholder tokens in square brackets (e.g. `[PROJECT_NAME]`, `[PRINCIPLE_1_NAME]`). Your job is to (a) collect/derive concrete values, (b) fill the template precisely, and (c) propagate any amendments across dependent artifacts.
20
22
 
@@ -44,7 +46,13 @@ Follow this execution flow:
44
46
  - Read `.specify/templates/plan-template.md` and ensure any "Constitution Check" or rules align with updated principles.
45
47
  - Read `.specify/templates/spec-template.md` for scope/requirements alignment—update if constitution adds/removes mandatory sections or constraints.
46
48
  - Read `.specify/templates/tasks-template.md` and ensure task categorization reflects new or removed principle-driven task types (e.g., observability, versioning, testing discipline).
47
- - Read each command file in `.specify/templates/commands/*.md` (including this one) to verify no outdated references (agent-specific names like CLAUDE only) remain when generic guidance is required.
49
+ - Review runtime prompts/agents for outdated references and align with updated principles:
50
+ - `.claude/commands/speckit.*.md`
51
+ - `.codex/prompts/speckit.*.md`
52
+ - `.gemini/commands/speckit.*.toml`
53
+ - `.github/prompts/speckit.*.prompt.md`
54
+ - `.github/agents/speckit.*.agent.md`
55
+ - `skills/speckit-*/SKILL.md`
48
56
  - Read any runtime guidance docs (e.g., `README.md`, `docs/quickstart.md`, or agent-specific guidance files if present). Update references to principles changed.
49
57
 
50
58
  5. Produce a Sync Impact Report (prepend as an HTML comment at top of the constitution file after update):
@@ -80,3 +88,14 @@ If the user supplies partial updates (e.g., only one principle revision), still
80
88
  If critical info missing (e.g., ratification date truly unknown), insert `TODO(<FIELD_NAME>): explanation` and include in the Sync Impact Report under deferred items.
81
89
 
82
90
  Do not create a new template; always operate on the existing `.specify/memory/constitution.md` file.
91
+
92
+ ## Outputs
93
+
94
+ - Updated `.specify/memory/constitution.md` (with Sync Impact Report comment)
95
+ - Any updated templates or runtime guidance files required to stay consistent with the constitution
96
+
97
+ ## Next Steps
98
+
99
+ After updating the constitution:
100
+
101
+ - **Specify** new features with speckit-specify.
@@ -1,16 +1,23 @@
1
1
  ---
2
+ name: speckit-implement
2
3
  description: Execute the implementation plan by processing and executing all tasks defined in tasks.md
3
4
  ---
4
5
 
5
- ## User Input
6
+ # Spec Kit Implement Skill
6
7
 
7
- ```text
8
- $ARGUMENTS
9
- ```
8
+ ## When to Use
10
9
 
11
- You **MUST** consider the user input before proceeding (if not empty).
10
+ - The plan and tasks are complete and you are ready to implement.
12
11
 
13
- ## Outline
12
+ ## Inputs
13
+
14
+ - `specs/<feature>/tasks.md` and `plan.md`
15
+ - Optional artifacts: `data-model.md`, `contracts/`, `research.md`, `quickstart.md`
16
+ - User constraints (e.g., scope, testing expectations)
17
+
18
+ If tasks are missing or incomplete, ask the user to run speckit-tasks first.
19
+
20
+ ## Workflow
14
21
 
15
22
  1. Run `.specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks` from repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute. For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").
16
23
 
@@ -132,4 +139,10 @@ You **MUST** consider the user input before proceeding (if not empty).
132
139
  - Confirm the implementation follows the technical plan
133
140
  - Report final status with summary of completed work
134
141
 
135
- Note: This command assumes a complete task breakdown exists in tasks.md. If tasks are incomplete or missing, suggest running `/speckit.tasks` first to regenerate the task list.
142
+ Note: This skill assumes a complete task breakdown exists in tasks.md. If tasks are incomplete or missing, suggest running speckit-tasks first to regenerate the task list.
143
+
144
+ ## Outputs
145
+
146
+ - Implementation changes in the codebase
147
+ - Updated `specs/<feature>/tasks.md` with completed tasks checked off
148
+ - Any generated/updated ignore files (e.g., `.gitignore`, `.dockerignore`, `.eslintignore`, `.prettierignore`)