@groupby/ai-dev 0.5.12 → 0.5.14
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 +1 -1
- package/teams/brain-studio/skills/docs-init/SKILL.md +405 -0
- package/teams/fhr-andromeda/github/PULL_REQUEST_TEMPLATE.md +51 -0
- package/teams/fhr-andromeda/github/copilot-instructions.md +47 -0
- package/teams/fhr-andromeda/instructions/CLAUDE.md +66 -0
- package/teams/fhr-andromeda/instructions/ai-instructions.md +312 -0
- package/teams/fhr-andromeda/instructions/architecture.md +181 -0
- package/teams/fhr-andromeda/instructions/code-review.md +127 -0
- package/teams/fhr-andromeda/instructions/coding-guidelines.md +139 -0
- package/teams/fhr-andromeda/instructions/domain.md +125 -0
- package/teams/fhr-andromeda/instructions/jira-ticket-template.md +55 -0
- package/teams/fhr-andromeda/instructions/modules/data-quality-frontend.md +57 -0
- package/teams/fhr-andromeda/instructions/modules/data-quality.md +62 -0
- package/teams/fhr-andromeda/instructions/modules/fhr-custom-transforms.md +59 -0
- package/teams/fhr-andromeda/instructions/modules/hop-dev-platform-frontend.md +60 -0
- package/teams/fhr-andromeda/instructions/modules/hop-dev-platform.md +62 -0
- package/teams/fhr-andromeda/instructions/modules/workflow-scripts.md +119 -0
- package/teams/fhr-andromeda/skills/fhr-pr/SKILL.md +71 -0
- package/teams/fhr-andromeda/skills/fhr-review/SKILL.md +78 -0
- package/teams/fhr-andromeda/skills/fhr-spec/SKILL.md +96 -0
package/package.json
CHANGED
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docs-init
|
|
3
|
+
description: Use when the user wants to initialize or refresh the fast-layer summary docs (`docs/*.md`), `CLAUDE.md`, and `README.md` from the current repo state. The authoritative source of truth stays in `docs/architecture/`; these summaries index and link into it. Triggered by `/docs-init` or requests like "update the docs", "refresh project documentation", "init docs", "bring docs up to date".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# docs-init
|
|
7
|
+
|
|
8
|
+
Generate and audit the **fast/index layer** of project documentation. This layer
|
|
9
|
+
indexes and links into the authoritative `docs/architecture/`, never duplicating
|
|
10
|
+
it and never fabricating facts.
|
|
11
|
+
|
|
12
|
+
This is a **standalone utility** — not part of the main AI workflow pipeline.
|
|
13
|
+
Run it any time, independently of tickets or implementation.
|
|
14
|
+
|
|
15
|
+
## Two documentation layers
|
|
16
|
+
|
|
17
|
+
This project has two doc layers. Keep them distinct:
|
|
18
|
+
|
|
19
|
+
1. **`docs/architecture/`** — the authoritative, detailed source of truth.
|
|
20
|
+
13+ files covering system overview, module structure, state management, data
|
|
21
|
+
flow, auth, tenancy, feature flags, services, integrations, build, testing,
|
|
22
|
+
code conventions, git workflow. **This skill never modifies these — it only
|
|
23
|
+
reads them.**
|
|
24
|
+
|
|
25
|
+
2. **Fast layer (this skill manages it)** — `docs/*.md` summaries
|
|
26
|
+
(`architecture.md`, `local-setup.md`, `conventions.md`, `operations.md`,
|
|
27
|
+
`decisions.md`) plus `CLAUDE.md` and `README.md` as thin indexes. These are
|
|
28
|
+
executive summaries for quick human onboarding and quick AI context. They
|
|
29
|
+
**summarize and link into** `docs/architecture/` — they never replace or
|
|
30
|
+
duplicate it.
|
|
31
|
+
|
|
32
|
+
## The fast-layer structure
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
README.md ← 30-second landing page + links
|
|
36
|
+
CLAUDE.md ← thin index for AI agents (~40 lines)
|
|
37
|
+
docs/
|
|
38
|
+
architecture.md ← summary: system, packages, domain model
|
|
39
|
+
local-setup.md ← prerequisites, run, test commands
|
|
40
|
+
conventions.md ← summary: code style, testing, PR norms
|
|
41
|
+
operations.md ← deploy, secrets, observability
|
|
42
|
+
decisions.md ← append-only "why" log (ADR-lite)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Every `docs/*.md` summary MUST start with a disclaimer block naming
|
|
46
|
+
`docs/architecture/` as the authoritative source. Two rules govern it:
|
|
47
|
+
|
|
48
|
+
**Which convention to use:**
|
|
49
|
+
- New file (init mode), or an existing file with no disclaimer → use the
|
|
50
|
+
`> **Note:**` template below.
|
|
51
|
+
- Existing file that already has a disclaimer (e.g. a `> **Scope:**` /
|
|
52
|
+
`> **Referenced from:**` block) → **preserve it as-is**. Do not swap
|
|
53
|
+
conventions; mixing them is noise, not an improvement.
|
|
54
|
+
|
|
55
|
+
**The Doc Routing Table link is conditional.** The base disclaimer always points
|
|
56
|
+
to `docs/architecture/`. Append the Doc Routing Table sentence **only if
|
|
57
|
+
`.github/copilot-instructions.md` actually exists in the repo** (confirm with
|
|
58
|
+
`ls` first). If it does not exist, omit that sentence — never emit a link to a
|
|
59
|
+
file that is not there.
|
|
60
|
+
|
|
61
|
+
Base (always):
|
|
62
|
+
|
|
63
|
+
```markdown
|
|
64
|
+
> **Note:** This is an executive summary for quick AI context. The
|
|
65
|
+
> authoritative source of truth is `docs/architecture/`.
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Append only when `.github/copilot-instructions.md` exists:
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
> See the [Doc Routing Table](../.github/copilot-instructions.md) for which
|
|
72
|
+
> architecture doc to consult for each task type.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Procedure
|
|
76
|
+
|
|
77
|
+
### 1. Detect mode
|
|
78
|
+
|
|
79
|
+
- Check for `README.md`, `CLAUDE.md`, and each of the five `docs/*.md` summaries.
|
|
80
|
+
- If three or more summaries are missing → **init mode**.
|
|
81
|
+
- Otherwise → **refresh mode**.
|
|
82
|
+
- Announce the detected mode before proceeding.
|
|
83
|
+
|
|
84
|
+
### 2. Scan sources
|
|
85
|
+
|
|
86
|
+
The primary source for the fast layer is `docs/architecture/` — **not raw code**:
|
|
87
|
+
|
|
88
|
+
- Read the relevant `docs/architecture/*.md` files to extract facts.
|
|
89
|
+
- Cross-reference actual code only where architecture docs may be stale.
|
|
90
|
+
- `package.json` — versions, dependencies, and **yarn scripts** (the run/build/
|
|
91
|
+
test commands).
|
|
92
|
+
- `.github/workflows/` — CI details and triggers.
|
|
93
|
+
- `helm/`, `Dockerfile` — deploy details.
|
|
94
|
+
- `docs/architecture/13-git-workflow.md` — commit/PR conventions.
|
|
95
|
+
|
|
96
|
+
For refresh mode, also run `git log --since="<doc-mtime>"` per summary to narrow
|
|
97
|
+
attention to recent changes a summary may not yet reflect.
|
|
98
|
+
|
|
99
|
+
### 3a. Init mode — draft (do NOT write yet)
|
|
100
|
+
|
|
101
|
+
Draft the seven fast-layer files in memory using the **canonical templates**
|
|
102
|
+
below. Content comes from `docs/architecture/` — summarize and link, do not
|
|
103
|
+
duplicate. Every `docs/*.md` starts with the `> **Note:**` disclaimer. Leave
|
|
104
|
+
honest placeholders where no authoritative source exists yet. Do not fabricate.
|
|
105
|
+
|
|
106
|
+
**Verification checklist — apply to every claim before including it.** The core
|
|
107
|
+
rule: **every fact in a summary must trace to `docs/architecture/`, or to real
|
|
108
|
+
source when the architecture docs are silent or stale.**
|
|
109
|
+
|
|
110
|
+
1. **Commands** — Before writing any `yarn <script>` / `npm run <script>`,
|
|
111
|
+
confirm the script exists in `package.json`. Never guess script names.
|
|
112
|
+
2. **Config keys** — Quote exact property paths from the actual config file
|
|
113
|
+
(`.env`, JSON, YAML, Helm values). Do not paraphrase or use placeholder
|
|
114
|
+
syntax like `${...}`.
|
|
115
|
+
3. **Directory contents** — `ls` the directory before describing what it
|
|
116
|
+
contains. Never say "contains X" without checking.
|
|
117
|
+
4. **Credentials** — Never instruct placing credentials in a repo-tracked file.
|
|
118
|
+
Recommend user-home config (`~/.npmrc`) or environment variables instead.
|
|
119
|
+
5. **CI/CD triggers** — Read the actual GitHub Actions `on:` block. List all
|
|
120
|
+
branches/events accurately; do not guess.
|
|
121
|
+
6. **Scope qualifiers** — When stating "all X do Y," verify there are no
|
|
122
|
+
exceptions before writing it.
|
|
123
|
+
7. **File references** — When describing what a file is for, trace its
|
|
124
|
+
references (grep the filename) so the description matches actual usage.
|
|
125
|
+
8. **Architecture-doc links** — When a summary section points to
|
|
126
|
+
`docs/architecture/NN-*.md`, confirm that file exists and covers that topic.
|
|
127
|
+
9. **Cross-references resolve** — Every link in `CLAUDE.md`, `README.md`, and
|
|
128
|
+
the disclaimer's conditional Routing Table line must point to a file that
|
|
129
|
+
exists. `ls` before linking; omit or fix any link whose target is absent.
|
|
130
|
+
|
|
131
|
+
Targets: `CLAUDE.md` ≤ 40 lines, `README.md` ≤ 30 lines, each `docs/*.md`
|
|
132
|
+
summary ≤ 80 lines.
|
|
133
|
+
|
|
134
|
+
**Do not write these files to disk yet.** Continue to step 4, where the drafts
|
|
135
|
+
are summarized in the audit report and the user approves before any file is
|
|
136
|
+
created.
|
|
137
|
+
|
|
138
|
+
### 3b. Refresh mode — audit each summary
|
|
139
|
+
|
|
140
|
+
For each existing summary, compare against `docs/architecture/` and code, and
|
|
141
|
+
classify findings into three buckets:
|
|
142
|
+
|
|
143
|
+
- **Outdated** — the summary states something no longer true.
|
|
144
|
+
- **Drifted** — correct but missing material that `docs/architecture/` or the
|
|
145
|
+
code now contains.
|
|
146
|
+
- **New opportunities** — content the summary does not have but probably should.
|
|
147
|
+
|
|
148
|
+
`decisions.md` is **append-only**: propose new entries on approval, but never
|
|
149
|
+
rewrite or remove existing ones.
|
|
150
|
+
|
|
151
|
+
### 4. Report to the user (human-readable, NOT a diff)
|
|
152
|
+
|
|
153
|
+
In **init mode**, the report summarizes what each new file will contain (one
|
|
154
|
+
paragraph per file) and the "Proposed actions" list reads as `Create <path>`
|
|
155
|
+
items. In **refresh mode**, it follows the per-file findings format below.
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
# Documentation audit — <YYYY-MM-DD>
|
|
159
|
+
|
|
160
|
+
Mode: <init | refresh>
|
|
161
|
+
|
|
162
|
+
## Summary
|
|
163
|
+
<2-3 sentences: what was created or what needs attention overall>
|
|
164
|
+
|
|
165
|
+
## Per-file findings
|
|
166
|
+
|
|
167
|
+
### docs/architecture.md (summary)
|
|
168
|
+
**Outdated:** ...
|
|
169
|
+
**Drifted:** ...
|
|
170
|
+
**New opportunities:** ...
|
|
171
|
+
|
|
172
|
+
(... continue for each file ...)
|
|
173
|
+
|
|
174
|
+
## Proposed actions
|
|
175
|
+
Numbered list of concrete edits. Group by file. Each item is one sentence — no diffs.
|
|
176
|
+
|
|
177
|
+
## Verified against source
|
|
178
|
+
- Commands: <which package.json scripts were confirmed>
|
|
179
|
+
- Config keys: <which files were read for exact names>
|
|
180
|
+
- Directories: <which directories were listed>
|
|
181
|
+
- Workflow triggers: <which workflow files were read>
|
|
182
|
+
- Architecture links: <which docs/architecture/ files were confirmed>
|
|
183
|
+
- Line limits: <CLAUDE.md ≤40, README.md ≤30, each docs/*.md ≤80 — confirmed>
|
|
184
|
+
- Credentials: <confirm no repo-tracked file instructions>
|
|
185
|
+
|
|
186
|
+
## Awaiting your approval
|
|
187
|
+
Reply "apply" to make the changes, "apply <numbers>" to apply a subset
|
|
188
|
+
(e.g. "apply 1,3,5"), or "skip" to make no changes.
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
If a bucket is empty for a file, write `(none)` — do not omit it. This makes it
|
|
192
|
+
obvious the check ran.
|
|
193
|
+
|
|
194
|
+
### 5. Apply on approval
|
|
195
|
+
|
|
196
|
+
- On `apply` — create or edit each affected file. In init mode, create all seven
|
|
197
|
+
fast-layer files from the step-3a drafts. In refresh mode, edit existing files
|
|
198
|
+
in place. Preserve `> **Note:**` and `> **Scope:**` blocks. Do not reorganize
|
|
199
|
+
content across files. Do not change file names.
|
|
200
|
+
- On `apply <numbers>` — apply only the selected proposed actions.
|
|
201
|
+
- On `skip` — make no edits or creations; thank the user and exit.
|
|
202
|
+
- After applying, print a short summary of which files changed and suggest a
|
|
203
|
+
commit message.
|
|
204
|
+
|
|
205
|
+
## Hard rules
|
|
206
|
+
|
|
207
|
+
- **Apply edits only after explicit user approval.** No fast-layer file is
|
|
208
|
+
written before the user replies `apply` or `apply <numbers>`.
|
|
209
|
+
- **Never touch `docs/architecture/`.** It is authoritative and managed
|
|
210
|
+
separately. Read it; never edit it.
|
|
211
|
+
- **`decisions.md` is append-only.** New entries on approval; existing entries
|
|
212
|
+
are never edited or removed.
|
|
213
|
+
- **Preserve every `> **Note:**` and `> **Scope:**` block** verbatim on edit.
|
|
214
|
+
- **Do not move content between files.** Each file's scope is the convention.
|
|
215
|
+
If content fits none of the five, mention it in the report and ask.
|
|
216
|
+
- **Do not fabricate.** If the repo has no dashboards, runbooks, or decisions
|
|
217
|
+
yet, leave honest placeholders or empty sections.
|
|
218
|
+
- **Verify every factual claim** against `docs/architecture/` or source before
|
|
219
|
+
including it. See the verification checklist in step 3a.
|
|
220
|
+
- **Summaries link, never duplicate.** Reference architecture docs by relative
|
|
221
|
+
path (e.g. "See `docs/architecture/03-state-management.md` for details")
|
|
222
|
+
instead of copying their content.
|
|
223
|
+
- **Never reference repo-tracked files for credentials.** Use `~/.npmrc` or
|
|
224
|
+
environment variables.
|
|
225
|
+
- **Qualify universal statements.** If writing "all X do Y," verify there are no
|
|
226
|
+
exceptions and add qualifiers if needed.
|
|
227
|
+
- **Do not delete sections without flagging them** in the report.
|
|
228
|
+
- **Do not edit `.github/`, CI files, or source code.** This skill only touches
|
|
229
|
+
the fast-layer docs.
|
|
230
|
+
- **Keep line limits:** `CLAUDE.md` ≤ 40, `README.md` ≤ 30, each `docs/*.md`
|
|
231
|
+
≤ 80. If pointers no longer fit, ask before expanding.
|
|
232
|
+
|
|
233
|
+
## Common mistakes
|
|
234
|
+
|
|
235
|
+
- Duplicating content from `docs/architecture/` into summaries (summarize and
|
|
236
|
+
link, do not copy).
|
|
237
|
+
- Treating summaries as the source of truth — they are NOT.
|
|
238
|
+
- Editing `docs/architecture/` files (out of scope for this skill).
|
|
239
|
+
- Removing the `> **Note:**` disclaimer from a summary.
|
|
240
|
+
- Making changes before user approval.
|
|
241
|
+
- Fabricating operations info (dashboards, runbook URLs) that does not exist.
|
|
242
|
+
- Guessing a `yarn` script name instead of confirming it in `package.json`.
|
|
243
|
+
|
|
244
|
+
## Canonical templates
|
|
245
|
+
|
|
246
|
+
When in init mode, use these summary-shaped skeletons. Each section holds 1–2
|
|
247
|
+
sentences plus a link into `docs/architecture/` — not the details themselves.
|
|
248
|
+
Fill from the architecture-doc scan.
|
|
249
|
+
|
|
250
|
+
### `docs/architecture.md`
|
|
251
|
+
|
|
252
|
+
```markdown
|
|
253
|
+
# Architecture (summary)
|
|
254
|
+
|
|
255
|
+
> <disclaimer block — see "The fast-layer structure" section.
|
|
256
|
+
> Always points to `docs/architecture/`; append the Doc Routing Table line
|
|
257
|
+
> only if `.github/copilot-instructions.md` exists.>
|
|
258
|
+
|
|
259
|
+
## Overview
|
|
260
|
+
<one paragraph: what this system is. → `docs/architecture/01-*.md`>
|
|
261
|
+
|
|
262
|
+
## Module Structure
|
|
263
|
+
<top-level layout in 2-3 lines. → `docs/architecture/02-*.md`>
|
|
264
|
+
|
|
265
|
+
## State & Data Flow
|
|
266
|
+
<one line each. → `docs/architecture/03-state-management.md`, `…-data-flow.md`>
|
|
267
|
+
|
|
268
|
+
## Cross-Cutting Concerns
|
|
269
|
+
<auth, tenancy, feature flags — one line each, with links into docs/architecture/>
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### `docs/local-setup.md`
|
|
273
|
+
|
|
274
|
+
```markdown
|
|
275
|
+
# Local Setup (summary)
|
|
276
|
+
|
|
277
|
+
> <disclaimer block — see "The fast-layer structure" section.
|
|
278
|
+
> Always points to `docs/architecture/`; append the Doc Routing Table line
|
|
279
|
+
> only if `.github/copilot-instructions.md` exists.>
|
|
280
|
+
|
|
281
|
+
## Prerequisites
|
|
282
|
+
<node/yarn versions and required tooling — confirmed from package.json>
|
|
283
|
+
|
|
284
|
+
## Run / Build / Test
|
|
285
|
+
<the actual `yarn <script>` commands, confirmed in package.json>
|
|
286
|
+
|
|
287
|
+
## Environment
|
|
288
|
+
<key env vars, exact names. → relevant docs/architecture/ doc>
|
|
289
|
+
|
|
290
|
+
## Troubleshooting
|
|
291
|
+
<common gotchas, or an honest placeholder if none documented yet>
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### `docs/conventions.md`
|
|
295
|
+
|
|
296
|
+
```markdown
|
|
297
|
+
# Conventions (summary)
|
|
298
|
+
|
|
299
|
+
> <disclaimer block — see "The fast-layer structure" section.
|
|
300
|
+
> Always points to `docs/architecture/`; append the Doc Routing Table line
|
|
301
|
+
> only if `.github/copilot-instructions.md` exists.>
|
|
302
|
+
|
|
303
|
+
## Code Style
|
|
304
|
+
<one line. → `docs/architecture/` code-conventions doc>
|
|
305
|
+
|
|
306
|
+
## Testing
|
|
307
|
+
<framework + philosophy in 1-2 lines. → testing doc>
|
|
308
|
+
|
|
309
|
+
## PRs & Commits
|
|
310
|
+
<commit/PR norms. → `docs/architecture/13-git-workflow.md`>
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### `docs/operations.md`
|
|
314
|
+
|
|
315
|
+
```markdown
|
|
316
|
+
# Operations (summary)
|
|
317
|
+
|
|
318
|
+
> <disclaimer block — see "The fast-layer structure" section.
|
|
319
|
+
> Always points to `docs/architecture/`; append the Doc Routing Table line
|
|
320
|
+
> only if `.github/copilot-instructions.md` exists.>
|
|
321
|
+
|
|
322
|
+
## Deploy
|
|
323
|
+
<pipeline + environments in 1-2 lines. → relevant docs/architecture/ doc>
|
|
324
|
+
|
|
325
|
+
## Secrets
|
|
326
|
+
<where secrets come from — never a repo-tracked file>
|
|
327
|
+
|
|
328
|
+
## Observability
|
|
329
|
+
<dashboards/alerts, or an honest placeholder if none exist yet>
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### `docs/decisions.md`
|
|
333
|
+
|
|
334
|
+
```markdown
|
|
335
|
+
# Decisions
|
|
336
|
+
|
|
337
|
+
> **Scope:** Short, append-only log of *why* this codebase is the way it is.
|
|
338
|
+
> Captures decisions whose rationale is not obvious from reading the code.
|
|
339
|
+
> Do **not** put how-to instructions here.
|
|
340
|
+
|
|
341
|
+
## Format
|
|
342
|
+
|
|
343
|
+
Append a new entry as a new top-level section. Don't edit prior entries — if a
|
|
344
|
+
decision is reversed, add a new entry that supersedes the old one.
|
|
345
|
+
|
|
346
|
+
Each entry:
|
|
347
|
+
- **Context:** what prompted the decision
|
|
348
|
+
- **Decision:** what we chose
|
|
349
|
+
- **Consequence:** what this means going forward (and what we give up)
|
|
350
|
+
|
|
351
|
+
## Entries
|
|
352
|
+
|
|
353
|
+
*(No entries yet.)*
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### `CLAUDE.md`
|
|
357
|
+
|
|
358
|
+
```markdown
|
|
359
|
+
# CLAUDE.md
|
|
360
|
+
|
|
361
|
+
Index for AI coding agents. Keep this file short — point to `docs/` for substance.
|
|
362
|
+
|
|
363
|
+
## What this repo is
|
|
364
|
+
|
|
365
|
+
<one-paragraph description from the architecture-doc scan>
|
|
366
|
+
|
|
367
|
+
## Where things live
|
|
368
|
+
|
|
369
|
+
- **Architecture, domain model, module layout** → [docs/architecture.md](docs/architecture.md)
|
|
370
|
+
- **Build / run / test commands** → [docs/local-setup.md](docs/local-setup.md)
|
|
371
|
+
- **Code style, testing, PR rules** → [docs/conventions.md](docs/conventions.md)
|
|
372
|
+
- **Deploy, secrets, observability** → [docs/operations.md](docs/operations.md)
|
|
373
|
+
- **Why things are the way they are** → [docs/decisions.md](docs/decisions.md)
|
|
374
|
+
|
|
375
|
+
> **Note:** `docs/*.md` files are executive summaries; the authoritative source
|
|
376
|
+
> is `docs/architecture/`. (If `.github/copilot-instructions.md` exists, route
|
|
377
|
+
> via its Doc Routing Table.)
|
|
378
|
+
|
|
379
|
+
## Rules for working in this repo
|
|
380
|
+
|
|
381
|
+
<3-6 short bullets — only repo-specific gotchas an agent must follow every turn.
|
|
382
|
+
Do not duplicate detail that lives in docs/>
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### `README.md`
|
|
386
|
+
|
|
387
|
+
```markdown
|
|
388
|
+
# <repo name>
|
|
389
|
+
|
|
390
|
+
<one-paragraph description>
|
|
391
|
+
|
|
392
|
+
## Quick start
|
|
393
|
+
|
|
394
|
+
<3-5 lines: the shortest possible happy path, using confirmed yarn scripts>
|
|
395
|
+
|
|
396
|
+
Requires <prereqs>. For detail see [docs/local-setup.md](docs/local-setup.md).
|
|
397
|
+
|
|
398
|
+
## Documentation
|
|
399
|
+
|
|
400
|
+
- [Architecture](docs/architecture.md) — system overview, domain model, layout
|
|
401
|
+
- [Local setup](docs/local-setup.md) — full setup, tasks, troubleshooting
|
|
402
|
+
- [Conventions](docs/conventions.md) — code style, testing, PR rules
|
|
403
|
+
- [Operations](docs/operations.md) — deploy, secrets, observability
|
|
404
|
+
- [Decisions](docs/decisions.md) — why things are the way they are
|
|
405
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
## AI Generation Info
|
|
2
|
+
|
|
3
|
+
- **Jira ticket:** <!-- e.g. ETL-1234 -->
|
|
4
|
+
- **Agent type:** <!-- e.g. Java Dev - data-quality | Angular Dev - frontend | Python Dev - workflow-scripts -->
|
|
5
|
+
- **AI tool:** <!-- e.g. Claude (claude-sonnet-4-6) | GitHub Copilot -->
|
|
6
|
+
- **Spec referenced:** <!-- link to Jira spec or paste inline -->
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## TDD Summary
|
|
11
|
+
|
|
12
|
+
- **Tests written first:** <!-- yes / no — if no, explain why -->
|
|
13
|
+
- **Test files:**
|
|
14
|
+
- <!-- src/test/java/... or src/integration-test/groovy/... -->
|
|
15
|
+
- **Production files:**
|
|
16
|
+
- <!-- src/main/java/... -->
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## What was generated
|
|
21
|
+
|
|
22
|
+
<!-- Brief description of what the AI produced -->
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## What was reviewed / changed after generation
|
|
27
|
+
|
|
28
|
+
<!-- Any manual corrections made post-generation, and the reason -->
|
|
29
|
+
<!-- If nothing was changed: "None — generated output accepted as-is" -->
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Review notes
|
|
34
|
+
|
|
35
|
+
<!-- Areas that warrant careful human review — edge cases, security, reactive chains, migrations, etc. -->
|
|
36
|
+
<!-- If none: "None identified" -->
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Checklist
|
|
41
|
+
|
|
42
|
+
- [ ] Jira ticket referenced above
|
|
43
|
+
- [ ] AI tool and agent type declared
|
|
44
|
+
- [ ] Tests written before or alongside production code (TDD order)
|
|
45
|
+
- [ ] Unit tests ≥ 90% coverage of new code, positive + negative cases
|
|
46
|
+
- [ ] `BUILD SUCCESS` confirmed locally (`mvn clean install -pl <module> -am` or `ng build`)
|
|
47
|
+
- [ ] No `TODO`, `FIXME`, or placeholder comments
|
|
48
|
+
- [ ] No secrets, hardcoded URLs, or environment-specific values
|
|
49
|
+
- [ ] Lombok used for all Java boilerplate; no manual getters/setters/constructors
|
|
50
|
+
- [ ] Constructor injection used in all Spring beans (no `@Autowired` field injection)
|
|
51
|
+
- [ ] Cross-repo impact checked — if `andromeda-argo-deployments` is affected, linked ticket exists
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# GitHub Copilot Repository Instructions
|
|
2
|
+
|
|
3
|
+
This file is the Copilot bootstrap for this repository. It should stay short and only explain
|
|
4
|
+
which context files to load and how to resolve conflicts.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Mandatory Context
|
|
9
|
+
|
|
10
|
+
Before answering technical questions or generating changes, read and apply:
|
|
11
|
+
|
|
12
|
+
| File | Owns |
|
|
13
|
+
|---|---|
|
|
14
|
+
| [`CLAUDE.md`](../CLAUDE.md) | Repository map and harness file ownership |
|
|
15
|
+
| [`.ai/architecture.md`](../.ai/architecture.md) | System boundaries, ETL workflow structure, and module responsibilities |
|
|
16
|
+
| [`.ai/domain.md`](../.ai/domain.md) | Business terminology and ETL domain concepts |
|
|
17
|
+
| [`.ai/ai-instructions.md`](../.ai/ai-instructions.md) | AI workflow, TDD protocol, stop conditions |
|
|
18
|
+
| [`.ai/coding-guidelines.md`](../.ai/coding-guidelines.md) | Coding conventions and implementation rules |
|
|
19
|
+
| Relevant module `CLAUDE.md` | Module-specific context and constraints |
|
|
20
|
+
| [`.ai/jira-ticket-template.md`](../.ai/jira-ticket-template.md) | Full Jira ticket spec template |
|
|
21
|
+
|
|
22
|
+
Use [`.ai/code-review.md`](../.ai/code-review.md) when reviewing code or diffs.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Instruction Priority
|
|
27
|
+
|
|
28
|
+
If guidance conflicts, apply this order:
|
|
29
|
+
|
|
30
|
+
1. System/developer instructions.
|
|
31
|
+
2. This bootstrap file.
|
|
32
|
+
3. `.ai/ai-instructions.md`.
|
|
33
|
+
4. Relevant module `CLAUDE.md`.
|
|
34
|
+
5. `.ai/coding-guidelines.md`.
|
|
35
|
+
6. Existing local code patterns.
|
|
36
|
+
|
|
37
|
+
If a conflict still remains, stop and ask instead of guessing.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Non-Negotiable Bootstrap Rules
|
|
42
|
+
|
|
43
|
+
- For functional code tasks, follow the TDD workflow in `.ai/ai-instructions.md`.
|
|
44
|
+
- Do not generate test or production code before Phase 1 approval.
|
|
45
|
+
- Do not modify existing Flyway migrations.
|
|
46
|
+
- Do not introduce new dependencies, modules, or infrastructure scope without explicit approval.
|
|
47
|
+
- If required context is missing, declare a harness gap and wait for clarification.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# CLAUDE.md - Repository Context
|
|
2
|
+
|
|
3
|
+
This file is the repository entrypoint for AI agents. It explains what this repo contains and
|
|
4
|
+
which harness file owns each kind of guidance.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Repository Purpose
|
|
9
|
+
|
|
10
|
+
`fhr-apache-hop` contains application code for Fredhopper ETL 2.0, a Kubernetes-native data
|
|
11
|
+
pipeline platform built around Apache Hop.
|
|
12
|
+
|
|
13
|
+
Infrastructure definitions live in `andromeda-argo-deployments`. See `.ai/architecture.md` for
|
|
14
|
+
the repository boundary definition.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Harness File Ownership
|
|
19
|
+
|
|
20
|
+
| File | Owns |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `.github/copilot-instructions.md` | Copilot bootstrap and context-loading order |
|
|
23
|
+
| `CLAUDE.md` | Repository map and harness ownership |
|
|
24
|
+
| `.ai/architecture.md` | Stable system boundaries, ETL workflow structure, and module responsibilities |
|
|
25
|
+
| `.ai/domain.md` | Business terminology and domain concepts |
|
|
26
|
+
| `.ai/ai-instructions.md` | AI workflow, clarification, TDD, stop conditions, verification |
|
|
27
|
+
| `.ai/coding-guidelines.md` | Coding conventions and implementation rules |
|
|
28
|
+
| `.ai/code-review.md` | Review severity and checklist |
|
|
29
|
+
| `.ai/jira-ticket-template.md` | Full Jira ticket spec template |
|
|
30
|
+
| `<module>/CLAUDE.md` | Module-specific constraints and integration context |
|
|
31
|
+
|
|
32
|
+
Keep each file focused on its owner topic. Do not duplicate detailed rules across files.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Systems in This Repository
|
|
37
|
+
|
|
38
|
+
| System | Modules | Purpose |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| ETL Engine | `fhr-custom-transforms`, `standard-etl-transformations`, `fhr-hop-server` | Apache Hop extensions, packaged ETL flows, and runtime image assembly |
|
|
41
|
+
| Workflow Scripts | `workflow-scripts` | Python logic executed by Argo Workflow steps |
|
|
42
|
+
| HDSys | `hop-dev-platform`, `hop-dev-platform-frontend` | Browser-based Hop workspace platform for ETL customisation |
|
|
43
|
+
| DQSys | `data-quality`, `data-quality-frontend` | Data-quality reporting service and UI |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Working in a Module
|
|
48
|
+
|
|
49
|
+
Before changing a module:
|
|
50
|
+
|
|
51
|
+
1. Read this file and the root context files listed above.
|
|
52
|
+
2. Read the module's `CLAUDE.md`.
|
|
53
|
+
3. Inspect existing code in the target area instead of relying on stale inventories.
|
|
54
|
+
4. Follow `.ai/ai-instructions.md` for workflow and `.ai/coding-guidelines.md` for
|
|
55
|
+
implementation style.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Build Entry Points
|
|
60
|
+
|
|
61
|
+
Use the root Maven project for Java and packaging modules. Use each Angular module's package
|
|
62
|
+
scripts for frontend modules. Prefer module-scoped builds unless a shared parent or cross-module
|
|
63
|
+
contract changed.
|
|
64
|
+
|
|
65
|
+
Exact commands are in `.ai/ai-instructions.md` §8. Use the module's current build files as the
|
|
66
|
+
authoritative source for profiles and flags.
|