@groupby/ai-dev 0.5.3 → 0.5.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groupby/ai-dev",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "Interactive installer for Rezolve Ai development content",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,19 @@
1
+ <!--
2
+ PR TITLE must follow: FHR-<number>: <description>
3
+ Example: FHR-7113: Add AI-first development workflow for FAS
4
+ The pull-request.yml CI check will fail if the format is wrong.
5
+ -->
6
+
7
+ ## Jira ticket
8
+
9
+ [FHR-XXXX](https://attraqt.atlassian.net/browse/FHR-XXXX)
10
+
11
+ ## AI Development Checklist
12
+
13
+ - [ ] Specification file present
14
+ - [ ] Unit tests present and passing
15
+ - [ ] Documentation file present
16
+ - [ ] AI tool used: _Claude Code / Copilot / Agent / Other_
17
+ - [ ] Tests generated/refined with AI (failing tests written before implementation)
18
+ - [ ] AI review pass completed (visible in PR comments)
19
+ - [ ] Repo context files (`CLAUDE.md`, `AGENTS.md`, `architecture.md`, `coding-guidelines.md`, `glossary.md`) still accurate
@@ -0,0 +1,22 @@
1
+ # FHR-XXXX TITLE
2
+
3
+ > Task description, including background context, user stories, and so on.
4
+
5
+ ## Acceptance Criteria
6
+
7
+ **Functional requirements**
8
+ > - criteria 1
9
+ > - criteria 2
10
+ > - ...
11
+
12
+ **Non-Functional requirements**
13
+ > - criteria 1
14
+ > - criteria 2
15
+
16
+
17
+ ## Design and Implementation Plan
18
+
19
+ > Fill with the design and implementation plan.
20
+ > List of user acceptance tests
21
+ > List of unit tests
22
+
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: jira-ticket
3
+ description: Fetch a Jira ticket by number using the Atlassian MCP and report a summary. Use when the user says "jira", "ticket", or provides a ticket number like FHR-1234 or FAS-5678.
4
+ tools: mcp__atlassian__getJiraIssue, mcp__atlassian__getAccessibleAtlassianResources
5
+ ---
6
+
7
+ # Jira Ticket Summary
8
+
9
+ Fetch a Jira ticket via the Atlassian MCP and return a structured summary.
10
+
11
+ ## Prerequisites
12
+
13
+ The `atlassian` MCP server must be connected and authenticated. If the MCP tools are unavailable, tell the user:
14
+ > The Atlassian MCP isn't connected. Run `/mcp` to connect and authenticate, then try again.
15
+
16
+ ## Steps
17
+
18
+ 1. **Validate input**: the ticket number comes from `$ARGUMENTS` (e.g. `FHR-6921`). If empty, ask the user for one.
19
+
20
+ 2. **Fetch the ticket** with the `mcp__atlassian__getJiraIssue` tool:
21
+ - `cloudId`: `attraqt.atlassian.net`
22
+ - `issueIdOrKey`: the ticket number from `$ARGUMENTS`
23
+ - `responseContentFormat`: `markdown` (so the description comes back as plain text, not ADF JSON)
24
+ - `fields`: `["summary", "status", "assignee", "reporter", "description", "labels", "components", "issuetype", "priority", "issuelinks", "fixVersions"]`
25
+
26
+ If the call fails with a cloudId/site error, call `mcp__atlassian__getAccessibleAtlassianResources` to find the correct cloudId, then retry with that value.
27
+
28
+ 3. **Check for errors**: if the tool returns an error (e.g. issue not found, no access), report it clearly and stop.
29
+
30
+ 4. **Report** a structured summary using these fields from the response:
31
+
32
+ - **Ticket**: `key` — `fields.summary`
33
+ - **Type / Priority**: `fields.issuetype.name` / `fields.priority.name`
34
+ - **Status**: `fields.status.name`
35
+ - **Assignee**: `fields.assignee.displayName` (or "Unassigned")
36
+ - **Reporter**: `fields.reporter.displayName`
37
+ - **Labels**: `fields.labels[]` joined, or "none"
38
+ - **Components**: `fields.components[].name` joined, or "none"
39
+ - **Fix Version**: `fields.fixVersions[].name`, or "none"
40
+ - **Description**: synthesise `fields.description` into 3–6 readable sentences
41
+ - **Linked tickets**: for each entry in `fields.issuelinks[]`, show the link type and the linked issue key + summary
42
+
43
+ ## Notes
44
+
45
+ - Authentication is handled by the MCP's OAuth session — no API tokens or `CONFLUENCE_USER`/`CONFLUENCE_PASS` env vars are needed.
46
+ - Never print the raw JSON. Synthesise a clean human-readable summary from the parsed fields.
47
+ - If the description is empty or null, say "No description provided."
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: plan-spec
3
+ description: Read a spec file and produce a detailed design and implementation plan — with BDD acceptance tests and TDD test cases per task — written into the spec's "Design and Implementation Plan" section, then committed. Use when user references a spec file and wants a plan, implementation design, or test specifications derived from requirements.
4
+ arguments: spec-file
5
+ ---
6
+
7
+ # Plan Spec
8
+
9
+ Turns a refined spec into a concrete design and implementation plan with tests, committed to git.
10
+
11
+ ## Quick start
12
+
13
+ ```
14
+ /plan-spec suggest-docs/src/main/docs/plans/FHR-XXXX-feature-name.md
15
+ ```
16
+
17
+ ## Workflow
18
+
19
+ 1. **Enter Plan mode** — call `EnterPlanMode` immediately; stay in it while producing the plan
20
+
21
+ 2. **Load context**
22
+ - Read the spec file passed as argument
23
+ - Read `glossary.md` from the project root for ubiquitous language
24
+ - Read `architecture.md` from the project root for architecture guidelines
25
+
26
+ 3. **Produce the plan**
27
+ - Break the feature into discrete implementation tasks
28
+ - For each task, use this format:
29
+ ```
30
+ ### Task: <name>
31
+ - [ ] Acceptance tests
32
+ - [ ] Unit tests
33
+ - [ ] Production code
34
+
35
+ **Acceptance tests (BDD)**
36
+ - Given ... When ... Then ...
37
+
38
+ **Unit tests (TDD)**
39
+ - should ... when ...
40
+ ```
41
+ - Respect module boundaries and patterns from `architecture.md`
42
+ - Use only domain terms from `glossary.md`
43
+
44
+ 4. **Exit Plan mode and write into spec** — call `ExitPlanMode`, then update the spec file
45
+ - Write the full plan under the `## Design and Implementation Plan` section
46
+ - Create the section if it does not already exist
47
+
48
+ 5. **Commit**
49
+ - Stage the spec file
50
+ - Commit with message (replace XXXX with the actual ticket number from the spec file): `FHR-XXXX: add design and implementation plan`
51
+
52
+ ## Constraints
53
+
54
+ - Do NOT touch any source code
55
+ - Do NOT implement anything — plan only
56
+ - Use only ubiquitous language from the glossary
57
+ - Follow architecture patterns (module boundaries, event bus, DI, interfaces) from `architecture.md`
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: refine-spec
3
+ description: Conduct a structured requirements-refinement interview against a spec file, using the project's ubiquitous language from glossary.md, until scope and acceptance criteria are clear, then update the spec file in place. Use when user references a spec file and wants to clarify requirements, define scope, or sharpen acceptance criteria — but not write code or tests.
4
+ arguments: spec-file
5
+ ---
6
+
7
+ # Refine Spec
8
+
9
+ Requirements-refinement session: interview the user until scope and acceptance criteria are clear, then rewrite the spec in place.
10
+
11
+ ## Quick start
12
+
13
+ ```
14
+ /refine-spec suggest-docs/src/main/docs/plans/FHR-XXXX-feature-name.md
15
+ ```
16
+
17
+ ## Workflow
18
+
19
+ 1. **Enter Plan mode** — call `EnterPlanMode` immediately; stay in it through the entire interview
20
+
21
+ 2. **Load context**
22
+ - Read the spec file passed as argument
23
+ - Read `glossary.md` from the project root for ubiquitous language
24
+
25
+ 3. **Assess current state**
26
+ - Identify what is clear, what is vague, and what is missing
27
+ - Flag any terminology that drifts from the glossary
28
+
29
+ 4. **Interview loop**
30
+ - Ask focused, one-topic-at-a-time questions (scope, edge cases, acceptance criteria)
31
+ - Use only domain terms from the glossary — never invent synonyms
32
+ - Continue until scope is unambiguous, acceptance criteria are testable, no open questions remain
33
+
34
+ 5. **Exit Plan mode and update spec** — call `ExitPlanMode`, then rewrite the spec file in place
35
+ - Preserve original structure; add/update sections as needed
36
+ - Use only ubiquitous language from the glossary
37
+
38
+ 6. **Commit**
39
+ - Stage the spec file
40
+ - Commit with message (replace XXXX with the actual ticket number from the spec file): `FHR-XXXX: refine the requirements`
41
+
42
+ ## Constraints
43
+
44
+ - Do NOT touch any source code
45
+ - Do NOT discuss unit tests or implementation details
46
+ - Do NOT propose solutions — only clarify requirements
47
+ - Stop interviewing once all sections are clear
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: tdd-green
3
+ description: Implement production code (green phase) for the next incomplete task in a spec file's Design and Implementation Plan, writing only enough code to make the failing tests pass, then refactor while keeping tests green, mark the Production code sub-task done, and commit the green and refactor work separately. Use when user references a spec file and wants to implement a feature, or says "green phase", "make tests pass", "tdd green", or "green and refactor".
4
+ arguments: spec-file
5
+ ---
6
+
7
+ # TDD Green
8
+
9
+ Implements the production code to make the failing tests pass. Run after `/tdd-red`.
10
+
11
+ ## Quick start
12
+
13
+ ```
14
+ /tdd-green suggest-docs/src/main/docs/plans/FHR-XXXX-feature-name.md
15
+ ```
16
+
17
+ ## Workflow
18
+
19
+ 1. **Load context**
20
+ - Read the spec file passed as argument
21
+ - Read `glossary.md` from the project root for ubiquitous language
22
+ - Read `coding-guidelines.md` from the project root for coding conventions
23
+ - Read `architecture.md` from the project root for module boundaries and patterns
24
+
25
+ 2. **Find the next incomplete task**
26
+ - Scan the `## Design and Implementation Plan` section for the first task whose `- [ ] Production code` checkbox is unchecked
27
+ - Work on that task only — do not advance to subsequent tasks
28
+
29
+ 3. **Implement production code**
30
+ - Write only enough production code to make the failing tests pass
31
+ - Follow all conventions in `coding-guidelines.md`
32
+ - Respect module boundaries from `architecture.md`
33
+ - Use only domain terms from `glossary.md`
34
+ - This is the **green phase**: no refactoring, no gold-plating — just passing tests
35
+
36
+ 4. **Run the tests**
37
+ - Unit tests
38
+ - Acceptance tests (JGiven)
39
+ - All tests must pass before proceeding
40
+
41
+ 5. **Commit (green)**
42
+ - Stage all changed production files
43
+ - Commit with message (replace XXXX with the actual ticket number from the spec file): `FHR-XXXX: implement <task name> (green)`
44
+
45
+ 6. **Refactor**
46
+ - Remove duplication, clarify intent, simplify structure
47
+ - Do NOT change behaviour; no new logic, no new tests
48
+ - Do NOT modify test code
49
+ - Run all tests; they must remain green. In case of any failure, stop immediately and ask the user what to do next (rollback; make the test pass; ...)
50
+
51
+ 7. **Mark task done**
52
+ - In the spec file, check off `- [x] Production code` for the completed task
53
+
54
+ 8. **Commit (refactor)**
55
+ - Stage all changed production files and the updated spec file
56
+ - Commit with message (replace XXXX with the actual ticket number from the spec file): `FHR-XXXX: refactor <task name> (refactor)`
57
+ ## Constraints
58
+
59
+ - Do NOT modify test code
60
+ - Do NOT advance past the first incomplete task
61
+ - Write the minimum code needed to make tests pass
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: tdd-red
3
+ description: Write failing tests (red phase) for the next incomplete task in a spec file's Design and Implementation Plan — acceptance tests (JGiven BDD) and unit tests (JUnit Jupiter) — then mark the Acceptance tests and Unit tests sub-tasks done and commit. Use when user references a spec file and wants to write the failing tests before implementing a feature, or says "red phase", "write tests", or "tdd red".
4
+ arguments: spec-file
5
+ ---
6
+
7
+ # TDD Red
8
+
9
+ Writes the failing tests for the next incomplete task in the plan. Run after `/plan-spec`.
10
+
11
+ ## Quick start
12
+
13
+ ```
14
+ /tdd-red suggest-docs/src/main/docs/plans/FHR-XXXX-feature-name.md
15
+ ```
16
+
17
+ ## Workflow
18
+
19
+ 1. **Load context**
20
+ - Read the spec file passed as argument
21
+ - Read `glossary.md` from the project root for ubiquitous language
22
+ - Read `coding-guidelines.md` from the project root for test conventions
23
+
24
+ 2. **Find the next incomplete task**
25
+ - Scan the `## Design and Implementation Plan` section for the first task whose `- [ ] Acceptance tests` or `- [ ] Unit tests` checkbox is unchecked
26
+ - Work on that task only — do not advance to subsequent tasks
27
+
28
+ 3. **Write the tests**
29
+ - Write acceptance tests (JGiven BDD style) and unit tests (JUnit Jupiter) as described for that task in the plan
30
+ - Follow all conventions in `coding-guidelines.md`: EasyMock for mocking, stage classes named `Given*`/`When*`/`Then*`, test methods named as scenario descriptions
31
+ - Use only domain terms from `glossary.md`
32
+ - This is the **red phase**: write only tests, no production code
33
+
34
+ 4. **Run the tests**
35
+ - Run unit tests
36
+ - Run acceptance tests (JGiven)
37
+ - Confirm the suite is red (fails) before proceeding
38
+
39
+ 5. **Mark task done**
40
+ - In the spec file, check off `- [x] Acceptance tests` and `- [x] Unit tests` for the completed task
41
+
42
+ 6. **Commit**
43
+ - Stage all new test files and the updated spec file
44
+ - Commit with message (replace XXXX with the actual ticket number from the spec file): `FHR-XXXX: add failing tests for <task name> (red)`
45
+
46
+ ## Constraints
47
+
48
+ - Do NOT write any production code
49
+ - Do NOT advance past the first incomplete task
50
+ - Use only ubiquitous language from the glossary
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: tdd-workflow
3
+ description: Drive the full red-green-refactor TDD cycle across every task in a spec file's Design and Implementation Plan — picking the next incomplete task, then running the red, green, and refactor phases for it, then looping to the next task until the plan is complete. Use when user references a spec file and wants to implement the whole plan end to end, or says "run the tdd workflow", "implement the plan", or "tdd workflow".
4
+ arguments: spec-file
5
+ ---
6
+
7
+ # TDD Workflow
8
+
9
+ Automates the per-task red → green → refactor cycle for an entire plan by orchestrating the
10
+ `tdd-red` and `tdd-green` skills. Run after `/plan-spec`.
11
+
12
+ ## Quick start
13
+
14
+ ```
15
+ /tdd-workflow suggest-docs/src/main/docs/plans/FHR-XXXX-feature-name.md
16
+ ```
17
+
18
+ ## Workflow
19
+
20
+ 1. **Load context**
21
+ - Read the spec file passed as argument
22
+ - Locate the `## Design and Implementation Plan` section and its list of `### Task:` blocks
23
+
24
+ 2. **Pick the next task**
25
+ - Find the first `### Task:` whose checkboxes are not all checked
26
+ (`- [ ] Acceptance tests`, `- [ ] Unit tests`, `- [ ] Production code`)
27
+ - This task is the current task. If every task is fully checked, stop; the plan is complete
28
+
29
+ 3. **Red phase (if needed)**
30
+ - If `Acceptance tests` or `Unit tests` is unchecked for the current task, invoke `tdd-red` with the spec file
31
+ - Wait for it to finish before continuing
32
+
33
+ 4. **Green/Refactor phase (if needed)**
34
+ - If `Production code` is unchecked for the current task, invoke `tdd-green` with the spec file
35
+ - Wait for it to finish before continuing
36
+
37
+ 5. **Loop to the next task**
38
+ - Re-read the spec file and return to step 2
39
+ - Continue until no incomplete task remains
40
+
41
+ 6. **Report**
42
+ - Summarise which tasks were implemented and confirm the plan is fully checked off
43
+
44
+ ## Constraints
45
+
46
+ - Always run the phases in order (red before green/refactor) for a given task
47
+ - Do NOT start the next task until the current one is fully complete
48
+ - If a phase’s checkbox is already checked for the current task, treat that phase as already complete (do not re-run it)
49
+ - Let each sub-skill enforce its own rules (tests-only in red, minimal code + refactor in green); this skill only sequences them
50
+ - Each invoked sub-skill commits its own work; do not add extra commits between skill invocations
51
+ - Stop and surface the problem if any phase fails (e.g. tests will not pass) rather than advancing