@groupby/ai-dev 0.5.9 → 0.5.11

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 (68) hide show
  1. package/package.json +1 -1
  2. package/teams/fhr-neowise/commands/address-pr.md +120 -0
  3. package/teams/fhr-neowise/commands/ready-pr.md +70 -0
  4. package/teams/fhr-neowise/commands/review-pr.md +111 -0
  5. package/teams/fhr-neowise/commands/tdd-implementation.md +86 -0
  6. package/teams/fhr-neowise/commands/write-plan.md +23 -0
  7. package/teams/fhr-neowise/commands/write-pr.md +21 -0
  8. package/teams/fhr-neowise/commands/write-spec.md +25 -0
  9. package/teams/fhr-neowise/skills/agent-routing/SKILL.md +72 -0
  10. package/teams/fhr-neowise/skills/code-review/SKILL.md +83 -0
  11. package/teams/fhr-neowise/skills/code-review/review-template.md +90 -0
  12. package/teams/fhr-neowise/skills/mermaid-diagram/SKILL.md +94 -0
  13. package/teams/fhr-neowise/skills/mermaid-diagram/references/BEST_PRACTICES.md +96 -0
  14. package/teams/fhr-neowise/skills/mermaid-diagram/references/architecture.md +434 -0
  15. package/teams/fhr-neowise/skills/mermaid-diagram/references/block.md +753 -0
  16. package/teams/fhr-neowise/skills/mermaid-diagram/references/c4.md +619 -0
  17. package/teams/fhr-neowise/skills/mermaid-diagram/references/classDiagram.md +1186 -0
  18. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-configuration.md +72 -0
  19. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-directives.md +342 -0
  20. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-layouts.md +40 -0
  21. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-math.md +96 -0
  22. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-theming.md +246 -0
  23. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-tidy-tree.md +89 -0
  24. package/teams/fhr-neowise/skills/mermaid-diagram/references/cynefin.md +279 -0
  25. package/teams/fhr-neowise/skills/mermaid-diagram/references/entityRelationshipDiagram.md +670 -0
  26. package/teams/fhr-neowise/skills/mermaid-diagram/references/eventmodeling.md +475 -0
  27. package/teams/fhr-neowise/skills/mermaid-diagram/references/examples.md +301 -0
  28. package/teams/fhr-neowise/skills/mermaid-diagram/references/flowchart.md +2116 -0
  29. package/teams/fhr-neowise/skills/mermaid-diagram/references/gantt.md +725 -0
  30. package/teams/fhr-neowise/skills/mermaid-diagram/references/gitgraph.md +2138 -0
  31. package/teams/fhr-neowise/skills/mermaid-diagram/references/ishikawa.md +66 -0
  32. package/teams/fhr-neowise/skills/mermaid-diagram/references/kanban.md +161 -0
  33. package/teams/fhr-neowise/skills/mermaid-diagram/references/mindmap.md +335 -0
  34. package/teams/fhr-neowise/skills/mermaid-diagram/references/packet.md +153 -0
  35. package/teams/fhr-neowise/skills/mermaid-diagram/references/pie.md +93 -0
  36. package/teams/fhr-neowise/skills/mermaid-diagram/references/quadrantChart.md +267 -0
  37. package/teams/fhr-neowise/skills/mermaid-diagram/references/radar.md +269 -0
  38. package/teams/fhr-neowise/skills/mermaid-diagram/references/railroad.md +337 -0
  39. package/teams/fhr-neowise/skills/mermaid-diagram/references/requirementDiagram.md +495 -0
  40. package/teams/fhr-neowise/skills/mermaid-diagram/references/sankey.md +415 -0
  41. package/teams/fhr-neowise/skills/mermaid-diagram/references/sequenceDiagram.md +1195 -0
  42. package/teams/fhr-neowise/skills/mermaid-diagram/references/stateDiagram.md +670 -0
  43. package/teams/fhr-neowise/skills/mermaid-diagram/references/timeline.md +571 -0
  44. package/teams/fhr-neowise/skills/mermaid-diagram/references/treeView.md +321 -0
  45. package/teams/fhr-neowise/skills/mermaid-diagram/references/treemap.md +353 -0
  46. package/teams/fhr-neowise/skills/mermaid-diagram/references/userJourney.md +42 -0
  47. package/teams/fhr-neowise/skills/mermaid-diagram/references/venn.md +134 -0
  48. package/teams/fhr-neowise/skills/mermaid-diagram/references/wardley.md +732 -0
  49. package/teams/fhr-neowise/skills/mermaid-diagram/references/xyChart.md +312 -0
  50. package/teams/fhr-neowise/skills/mermaid-diagram/references/zenuml.md +474 -0
  51. package/teams/fhr-neowise/skills/mermaid-diagram/scripts/sync_docs.py +138 -0
  52. package/teams/fhr-neowise/skills/pull-request-authoring/COMPLEX.template.md +52 -0
  53. package/teams/fhr-neowise/skills/pull-request-authoring/NON-CODE.template.md +15 -0
  54. package/teams/fhr-neowise/skills/pull-request-authoring/SIMPLE.template.md +20 -0
  55. package/teams/fhr-neowise/skills/pull-request-authoring/SKILL.md +102 -0
  56. package/teams/fhr-neowise/skills/spec-investigation/SKILL.md +139 -0
  57. package/teams/fhr-neowise/skills/spec-investigation/TEMPLATE.spec.md +74 -0
  58. package/teams/fhr-neowise/skills/tdd-workflow/SKILL.md +137 -0
  59. package/teams/fhr-neowise/skills/write-plan/SKILL.md +285 -0
  60. package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.checklist.json +79 -0
  61. package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.plan.md +158 -0
  62. package/teams/rangers/resources/project-doc-contract.md +41 -0
  63. package/teams/rangers/skills/team-code-review/SKILL.md +66 -0
  64. package/teams/rangers/skills/team-development/SKILL.md +43 -0
  65. package/teams/rangers/skills/team-docs-snapshot/SKILL.md +58 -0
  66. package/teams/rangers/skills/team-docs-snapshot/scripts/collect_project_docs.py +166 -0
  67. package/teams/rangers/skills/team-phase-planning/SKILL.md +63 -0
  68. package/teams/rangers/skills/team-project-orientation/SKILL.md +46 -0
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: team-docs-snapshot
3
+ description: >-
4
+ Collect AI/project documentation from a repository into a temporary review folder. Use when documentation needs to be pulled together for orientation, planning, review, migration, or skill-authoring analysis without loading every source file into the active context.
5
+ ---
6
+
7
+ # Team Docs Snapshot
8
+
9
+ ## Purpose
10
+
11
+ Use this skill to gather a project's AI-facing documentation into a disposable snapshot. Prefer it when the task is about understanding or migrating docs, comparing routing systems, reviewing documentation drift, or preparing a compact handoff for another session.
12
+
13
+ ## Workflow
14
+
15
+ 1. Identify the target repository root.
16
+ 2. Check for a project routing contract before collecting files:
17
+ - `docs/ai/index.md`
18
+ - `docs/project/ai-context.md`
19
+ - `.github/copilot-instructions.md`
20
+ - `AGENTS.md`
21
+ 3. Run the bundled collector from the project root or pass `--root` explicitly:
22
+
23
+ ```sh
24
+ python3 docs/ai/skills/team-docs-snapshot/scripts/collect_project_docs.py --root .
25
+ ```
26
+
27
+ If the skill is being used from the shared repo source instead of an installed project copy, run the script from this skill folder:
28
+
29
+ ```sh
30
+ python3 teams/rangers/skills/team-docs-snapshot/scripts/collect_project_docs.py --root /path/to/project
31
+ ```
32
+
33
+ 4. Read the generated `MANIFEST.md` first. Use it to decide which copied docs to load next.
34
+ 5. Treat the snapshot as scratch material. Do not commit it unless the user explicitly asks.
35
+
36
+ ## Collector Options
37
+
38
+ - `--out <dir>` writes to a specific snapshot directory.
39
+ - `--include <glob>` adds extra files. Repeat it for multiple patterns.
40
+ - `--exclude <glob>` removes files from the default or included matches.
41
+ - `--combined` also writes `COMBINED.md` for tools that need one linear document.
42
+
43
+ Default collection includes common project guidance docs:
44
+
45
+ - `docs/ai/**/*.md`
46
+ - `docs/project/**/*.md`
47
+ - `.github/copilot-instructions.md`
48
+ - `AGENTS.md`
49
+ - `README.md`
50
+
51
+ ## Output Expectations
52
+
53
+ When reporting back, include only:
54
+
55
+ - snapshot directory
56
+ - number of files collected
57
+ - notable missing entrypoints
58
+ - recommended docs to read next
@@ -0,0 +1,166 @@
1
+ #!/usr/bin/env python3
2
+ """Collect project AI/documentation files into a temporary snapshot directory."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import argparse
7
+ import fnmatch
8
+ import shutil
9
+ from datetime import datetime
10
+ from pathlib import Path
11
+
12
+
13
+ DEFAULT_PATTERNS = [
14
+ "docs/ai/**/*.md",
15
+ "docs/project/**/*.md",
16
+ ".github/copilot-instructions.md",
17
+ "AGENTS.md",
18
+ "README.md",
19
+ ]
20
+
21
+ DEFAULT_EXCLUDES = [
22
+ ".git/**",
23
+ "node_modules/**",
24
+ "tmp/**",
25
+ "dist/**",
26
+ "build/**",
27
+ ]
28
+
29
+
30
+ def parse_args() -> argparse.Namespace:
31
+ parser = argparse.ArgumentParser(
32
+ description="Copy project AI-facing docs into a temporary review snapshot.",
33
+ )
34
+ parser.add_argument(
35
+ "--root",
36
+ default=".",
37
+ help="Project root to scan. Defaults to the current directory.",
38
+ )
39
+ parser.add_argument(
40
+ "--out",
41
+ help="Snapshot output directory. Defaults to <root>/tmp/ai-docs-snapshot-<timestamp>.",
42
+ )
43
+ parser.add_argument(
44
+ "--include",
45
+ action="append",
46
+ default=[],
47
+ help="Additional glob to include. Can be repeated.",
48
+ )
49
+ parser.add_argument(
50
+ "--exclude",
51
+ action="append",
52
+ default=[],
53
+ help="Glob to exclude from copied results. Can be repeated.",
54
+ )
55
+ parser.add_argument(
56
+ "--combined",
57
+ action="store_true",
58
+ help="Also write COMBINED.md with all copied docs in one file.",
59
+ )
60
+ return parser.parse_args()
61
+
62
+
63
+ def is_excluded(relative_path: str, patterns: list[str]) -> bool:
64
+ return any(fnmatch.fnmatch(relative_path, pattern) for pattern in patterns)
65
+
66
+
67
+ def collect_matches(root: Path, includes: list[str], excludes: list[str]) -> list[Path]:
68
+ matches: set[Path] = set()
69
+ for pattern in includes:
70
+ for match in root.glob(pattern):
71
+ if match.is_file():
72
+ matches.add(match.resolve())
73
+
74
+ root_resolved = root.resolve()
75
+ filtered: list[Path] = []
76
+ for match in matches:
77
+ try:
78
+ relative = match.relative_to(root_resolved).as_posix()
79
+ except ValueError:
80
+ continue
81
+ if not is_excluded(relative, excludes):
82
+ filtered.append(match)
83
+
84
+ return sorted(filtered, key=lambda path: path.relative_to(root_resolved).as_posix())
85
+
86
+
87
+ def write_manifest(root: Path, out_dir: Path, files: list[Path], missing: list[str]) -> None:
88
+ lines = [
89
+ "# Project Docs Snapshot",
90
+ "",
91
+ f"Source root: `{root}`",
92
+ f"Generated: `{datetime.now().isoformat(timespec='seconds')}`",
93
+ f"Files collected: {len(files)}",
94
+ "",
95
+ "## Files",
96
+ "",
97
+ ]
98
+ for file_path in files:
99
+ relative = file_path.relative_to(root).as_posix()
100
+ lines.append(f"- `{relative}`")
101
+
102
+ if missing:
103
+ lines.extend(["", "## Missing Common Entrypoints", ""])
104
+ for pattern in missing:
105
+ lines.append(f"- `{pattern}`")
106
+
107
+ out_dir.joinpath("MANIFEST.md").write_text("\n".join(lines) + "\n", encoding="utf-8")
108
+
109
+
110
+ def write_combined(root: Path, out_dir: Path, files: list[Path]) -> None:
111
+ sections: list[str] = ["# Combined Project Docs", ""]
112
+ for file_path in files:
113
+ relative = file_path.relative_to(root).as_posix()
114
+ sections.extend([f"## {relative}", ""])
115
+ try:
116
+ sections.append(file_path.read_text(encoding="utf-8"))
117
+ except UnicodeDecodeError:
118
+ sections.append("[Skipped: file is not UTF-8 text]")
119
+ sections.append("")
120
+ out_dir.joinpath("COMBINED.md").write_text("\n".join(sections), encoding="utf-8")
121
+
122
+
123
+ def main() -> int:
124
+ args = parse_args()
125
+ root = Path(args.root).expanduser().resolve()
126
+ if not root.is_dir():
127
+ raise SystemExit(f"Project root does not exist or is not a directory: {root}")
128
+
129
+ timestamp = datetime.now().strftime("%Y%m%d-%H%M%S")
130
+ out_dir = (
131
+ Path(args.out).expanduser().resolve()
132
+ if args.out
133
+ else root / "tmp" / f"ai-docs-snapshot-{timestamp}"
134
+ )
135
+ out_dir.mkdir(parents=True, exist_ok=False)
136
+
137
+ includes = DEFAULT_PATTERNS + args.include
138
+ excludes = DEFAULT_EXCLUDES + args.exclude
139
+ files = collect_matches(root, includes, excludes)
140
+
141
+ missing = []
142
+ for pattern in DEFAULT_PATTERNS:
143
+ if not any(root.glob(pattern)):
144
+ missing.append(pattern)
145
+
146
+ for file_path in files:
147
+ relative = file_path.relative_to(root)
148
+ destination = out_dir / relative
149
+ destination.parent.mkdir(parents=True, exist_ok=True)
150
+ shutil.copy2(file_path, destination)
151
+
152
+ write_manifest(root, out_dir, files, missing)
153
+ if args.combined:
154
+ write_combined(root, out_dir, files)
155
+
156
+ print(f"Snapshot: {out_dir}")
157
+ print(f"Files collected: {len(files)}")
158
+ if missing:
159
+ print("Missing common entrypoints:")
160
+ for pattern in missing:
161
+ print(f"- {pattern}")
162
+ return 0
163
+
164
+
165
+ if __name__ == "__main__":
166
+ raise SystemExit(main())
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: team-phase-planning
3
+ description: >-
4
+ Break project work into reviewable phases using the repo's routing docs, workflow, phase plan, architecture, and decision log. Use when planning a feature slice, sequencing Jira tickets, defining review gates, or turning broad work into implementable phases.
5
+ ---
6
+
7
+ # Team Phase Planning
8
+
9
+ ## Purpose
10
+
11
+ Use this skill to convert broad work into small phases that can be implemented, validated, and reviewed independently.
12
+
13
+ ## Context Loading
14
+
15
+ 1. Read the project router:
16
+ - `docs/ai/index.md`
17
+ - `docs/project/ai-context.md`
18
+ - `.github/copilot-instructions.md`, if present
19
+ - `docs/ai/resources/project-doc-contract.md`, if no project router exists
20
+ 2. Read the working agreement and workflow docs.
21
+ 3. Load task-specific planning docs:
22
+ - phase plan
23
+ - decision log
24
+ - architecture docs
25
+ - API or frontend scope docs when the work touches those surfaces
26
+ 4. For large or unfamiliar doc sets, use `team-docs-snapshot` and read its manifest first.
27
+
28
+ ## Planning Flow
29
+
30
+ 1. State the goal and non-goals.
31
+ 2. Identify dependencies, unknowns, and project constraints.
32
+ 3. Split the work into phases that each have:
33
+ - user-visible or reviewable scope
34
+ - files or areas likely to change
35
+ - validation plan
36
+ - review gate
37
+ - docs that may need updates
38
+ 4. Put risky discovery early.
39
+ 5. Keep phases small enough that a reviewer can understand the diff without reconstructing the entire project.
40
+
41
+ ## Output Format
42
+
43
+ Use this shape unless the user asks otherwise:
44
+
45
+ ```markdown
46
+ # Plan: [Work Name]
47
+
48
+ ## Goal
49
+ [One paragraph]
50
+
51
+ ## Assumptions
52
+ - [Assumption]
53
+
54
+ ## Phases
55
+ ### Phase 1: [Name]
56
+ Scope:
57
+ Validation:
58
+ Review gate:
59
+ Docs impact:
60
+
61
+ ## Open Questions
62
+ - [Question]
63
+ ```
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: team-project-orientation
3
+ description: >-
4
+ Orient to an unfamiliar repository through its AI routing docs, project docs, README, architecture notes, and working agreement. Use when entering a repo, moving a task into a new chat, preparing implementation, or auditing whether the project exposes enough context for AI-assisted work.
5
+ ---
6
+
7
+ # Team Project Orientation
8
+
9
+ ## Purpose
10
+
11
+ Use this skill to build a small, accurate mental model of a project without reading the whole repo. The goal is to find the project's own context router, then load the smallest useful set of docs.
12
+
13
+ ## Orientation Flow
14
+
15
+ 1. Inspect the repo shape:
16
+ - `README.md`
17
+ - `AGENTS.md`
18
+ - package or workspace manifests
19
+ - top-level app, package, and docs folders
20
+ 2. Locate the AI/project routing entrypoints, in this order:
21
+ - `docs/ai/index.md`
22
+ - `.github/copilot-instructions.md`
23
+ - `docs/project/ai-context.md`
24
+ - `docs/ai/working-agreement.md`
25
+ - `docs/ai/resources/project-doc-contract.md`, if this team resource is installed
26
+ 3. If a routing table exists, follow it. Always prefer its task-specific guidance over generic assumptions.
27
+ 4. If no router exists, infer a temporary route from common docs:
28
+ - architecture: `docs/**/architecture*.md`
29
+ - product/context: `docs/**/product*.md`, `docs/**/overview*.md`
30
+ - decisions: `docs/**/decision*.md`, `docs/**/adr*.md`
31
+ - workflow: `docs/**/workflow*.md`, `docs/**/phase*.md`
32
+ - contracts: `docs/**/*contract*.md`, `docs/**/*api*.md`
33
+ 5. For broad documentation analysis, use `team-docs-snapshot` before loading many files.
34
+
35
+ ## Orientation Notes
36
+
37
+ Keep the output concise and project-owned:
38
+
39
+ - purpose and product/domain
40
+ - main apps/packages and how they fit together
41
+ - tech stack and validation commands, when documented
42
+ - AI routing map and any missing entrypoints
43
+ - implementation rules that look non-negotiable
44
+ - risks or ambiguities to resolve before coding
45
+
46
+ Do not copy project knowledge into a reusable skill. Project facts belong in that repo's docs.