Skip to content

Commit 7bedee2

Browse files
author
Daniel Duong
committed
Merge branch 'main' of https://github.com/opendatahub-io/odh-dashboard into feat/autox-file-explorer-row-click
2 parents 2d4b243 + 556b917 commit 7bedee2

833 files changed

Lines changed: 50114 additions & 8634 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agentready-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ documentation:
115115

116116
agent_specific:
117117
- "AGENTS.md"
118-
- "docs/agent-rules/*.md"
118+
- ".claude/rules/*.md"
119119
- "packages/*/AGENTS.md"
120120

121121
technical_docs:
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Create a Package Doc and Register in BOOKMARKS.md
2+
3+
When asked to create documentation for a package, read and follow the full workflow in
4+
`.claude/skills/docs-create-package/SKILL.md`.
5+
6+
## Quick Reference
7+
8+
- **Verify** the package exists at `packages/$ARGUMENTS/` before doing anything.
9+
- **Determine package type first** (before creating any files):
10+
- Has `frontend/src/` or `bff/`**full doc** (`packages/$ARGUMENTS/docs/overview.md`)
11+
- Tooling-only → **stub only** (README.md; no overview.md)
12+
- **Research** only files and directories that exist: README, Makefile, package.json, bff/, frontend/src/.
13+
- **Use** `docs/templates/package-template.md` and follow `docs/guidelines.md` for style.
14+
- **Omit** template sections that don't apply — no "Not applicable" filler.
15+
- **Update** `BOOKMARKS.md`: full-doc packages under **Packages > Full Docs**;
16+
tooling-only packages under **Packages > Stubs**.

.claude/commands/docs-create.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Create a New Doc from a Prompt
2+
3+
When asked to create new documentation, read and follow the full workflow in
4+
`.claude/skills/docs-create/SKILL.md`.
5+
6+
## Quick Reference
7+
8+
- **Parse** `$ARGUMENTS` to identify the subject, doc type, and any files/packages mentioned.
9+
- **Select a template** if one exists: `docs/templates/frontend-template.md`,
10+
`docs/templates/backend-template.md`, or `docs/templates/package-template.md`. For ADRs, check the package's own `docs/adr/`
11+
directory. All other types: follow `docs/guidelines.md` directly.
12+
- **Research** the subject by reading relevant source files before writing.
13+
- **Determine the output path** by doc type (e.g., `frontend/docs/<area>.md`,
14+
`packages/<name>/docs/overview.md`, `.claude/rules/<rule>.md`).
15+
- No placeholder text (`TODO`, `TBD`, `[Description]`) may remain in the final doc.
16+
- Omit template sections that don't apply — no "Not applicable" filler.

.claude/commands/docs-update.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Update Documentation
2+
3+
When asked to update documentation after code changes, read and follow the full workflow in
4+
`.claude/skills/docs-update/SKILL.md`.
5+
6+
## Quick Reference
7+
8+
- **No arguments**: defaults to uncommitted changes and new untracked files (`HEAD`).
9+
- **Git reference** (`HEAD~1`, `abc1234`, `abc1234..def5678`): diff-based update for those commits.
10+
- **`--no-cache`**: skip git diff entirely; rewrite every section of all targeted docs from current
11+
source. Add a scope filter to limit the refresh (e.g., `--no-cache backend`,
12+
`--no-cache packages/model-registry`, `--no-cache frontend/docs/pipelines.md`).
13+
- **Diff mode** (default): update only affected sections — do not rewrite unaffected content.
14+
- Show a summary of proposed changes and ask for confirmation before writing any file.
15+
- Verify any `BOOKMARKS.md` links to updated files still resolve correctly.

.claude/rules/jira-creation.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ User requests Jira creation (e.g., "create jira", "make jira tickets", "log a bu
1616

1717
* **Project Key**: `RHOAIENG` (This is the primary project for Dashboard-related issues).
1818
* **Team Field**:
19-
* ID: `customfield_12313240`
20-
* Value: `'4158'` (This string value represents the "RHOAI Dashboard" team).
19+
* ID: `customfield_10001` (Jira Teams / `atlassian-team`)
20+
* Value: `"ec74d716-af36-4b3c-950f-f79213d08f71-1809"` (RHOAI Dashboard team)
2121
* **Component**: `'AI Core Dashboard'` (This string value should be used for the components field).
2222
* **Epic Link Custom Field ID** (for Stories/Tasks under an Epic): `customfield_12311140`.
2323
* **Verify Information**: Always confirm specific details like summaries, descriptions, parent epic keys, and any ambiguous fields with the user.
24-
* **Team Value is a STRING**: The team field value (`'4158'`) must be passed as a string.
24+
* **Team Value is a plain string**: Pass `{"customfield_10001": "ec74d716-af36-4b3c-950f-f79213d08f71-1809"}` in `additional_fields`. Do NOT wrap in `{"id": "..."}` — the mcp-atlassian server expects the bare team ID string.
2525
* **Component is a STRING argument**: The `components` parameter is a direct top-level argument in the tool call.
2626
* **Iterative Creation**: If multiple issues are requested, create them one by one, confirming success or handling errors for each before proceeding.
2727
* **Error Handling**: If a tool call fails, analyze the error message. It often provides clues about field formats or missing required fields.
@@ -121,7 +121,7 @@ A defect in the product — e.g., something should be working but it is not. Thi
121121
* **Bugs are NOT**:
122122
* New functionality that is unlike existing functionality.
123123
* A way to "improve" things outside of "expected functionality" - e.g., "A form should submit cleanly and report k8s errors on the form" (expected) vs "A form should scroll to where the error is in the form" (new functionality).
124-
* Tests that are broken (these should be Tasks).
124+
* Tests that are broken, **including intermittent Cypress/CI flakes** (file as **Task**). A failing or flaky test does not by itself prove a user-facing product defect — use Task for spec/CI stability work unless the report documents reproducible broken **product** behavior.
125125

126126
### Information Gathering
127127

@@ -163,7 +163,7 @@ summary="BUG: [User-provided summary]",
163163
description="[Formatted markdown string including Description, Steps, Actual, Expected, Reproducibility, and Acceptance Criteria]",
164164
components="AI Core Dashboard",
165165
additional_fields={
166-
"customfield_12313240": "4158", # Team: RHOAI Dashboard
166+
"customfield_10001": "ec74d716-af36-4b3c-950f-f79213d08f71-1809", # Team: RHOAI Dashboard
167167
"priority": {"name": "..."}, # e.g., "Critical", "Major", "Normal", "Minor" (See Appendix A)
168168
"labels": ["..."] # e.g., ["needs-info"] (See Appendix B for other general labels)
169169
}
@@ -179,6 +179,7 @@ A user-impact addition/change to the product — e.g., feature work to add parti
179179

180180
* **Stories are NOT**:
181181
* Test additions (outside of expected tests accompanying new work - these are Tasks).
182+
* Cypress/CI **flake** or spec-stability work (these are **Tasks**, not Stories or Bugs).
182183
* Fixes to defects in the product (these are Bugs).
183184

184185
### Information Gathering
@@ -212,7 +213,7 @@ summary="STORY: [User-provided summary]",
212213
description="[Formatted markdown string including Description of enhancement, Acceptance Criteria, and Additional info]",
213214
components="AI Core Dashboard",
214215
additional_fields={
215-
"customfield_12313240": "4158", # Team: RHOAI Dashboard
216+
"customfield_10001": "ec74d716-af36-4b3c-950f-f79213d08f71-1809", # Team: RHOAI Dashboard
216217
"priority": {"name": "..."}, # e.g., "Major", "Normal" (See Appendix A)
217218
"labels": ["enhancement", "..."] # e.g., ["enhancement", "needs-ux"] (See Appendix B for other general labels)
218219
}
@@ -226,6 +227,8 @@ additional_fields={
226227

227228
A non-user facing change to the product — e.g., add a test, fix a test, or a refactor of code that does not impact the user (code cleanness / DRY / etc).
228229

230+
* **Use Task for:** Cypress or CI **flakes** (intermittent failures, timing, unstable specs), E2E test stabilization, and similar work — consistent with triage rules that keep these as **Task**, not Bug.
231+
229232
* **Tasks are NOT**:
230233
* New product functionality visible to the user.
231234

@@ -259,7 +262,7 @@ summary="TASK: [User-provided summary]",
259262
description="[Formatted markdown string including Description of task, Acceptance Criteria, and Additional info]",
260263
components="AI Core Dashboard",
261264
additional_fields={
262-
"customfield_12313240": "4158", # Team: RHOAI Dashboard
265+
"customfield_10001": "ec74d716-af36-4b3c-950f-f79213d08f71-1809", # Team: RHOAI Dashboard
263266
"priority": {"name": "..."}, # e.g., "Normal", "Minor" (See Appendix A)
264267
"labels": ["tech-debt", "..."] # e.g., ["tech-debt", "needs-info"] (See Appendix B for other general labels)
265268
}
@@ -295,7 +298,7 @@ description="[Formatted markdown string for Story description, AC, and Additiona
295298
components="AI Core Dashboard",
296299
additional_fields={
297300
"customfield_12311140": PARENT_EPIC_KEY, # Epic Link field
298-
"customfield_12313240": "4158", # Team: RHOAI Dashboard
301+
"customfield_10001": "ec74d716-af36-4b3c-950f-f79213d08f71-1809", # Team: RHOAI Dashboard
299302
"priority": {"name": "..."},
300303
"labels": ["enhancement", "..."]
301304
}
@@ -333,7 +336,7 @@ description="[Formatted markdown string for Task description, AC, and Additional
333336
components="AI Core Dashboard",
334337
additional_fields={
335338
"customfield_12311140": PARENT_EPIC_KEY, # Epic Link field
336-
"customfield_12313240": "4158", # Team: RHOAI Dashboard
339+
"customfield_10001": "ec74d716-af36-4b3c-950f-f79213d08f71-1809", # Team: RHOAI Dashboard
337340
"priority": {"name": "..."},
338341
"labels": ["tech-debt", "..."]
339342
}
@@ -386,7 +389,7 @@ summary="EPIC: [User-provided Epic Name]",
386389
description="[User-provided concise, high-level description of what the Epic aims to accomplish]",
387390
components="AI Core Dashboard", # Or other relevant components for the Epic
388391
additional_fields={
389-
"customfield_12313240": "4158", # Team: RHOAI Dashboard
392+
"customfield_10001": "ec74d716-af36-4b3c-950f-f79213d08f71-1809", # Team: RHOAI Dashboard
390393
"priority": {"name": "..."}, # e.g., "Major", "Critical"
391394
"labels": ["..."] # (See Appendix B for other general labels)
392395
}
@@ -424,7 +427,7 @@ These steps are typically for issues already created, but the principles guide f
424427
* **Informational**: Console output issues, React warnings.
425428
* *Note*: Set via `additional_fields`: `{"priority": {"name": "Blocker"}}` (or other levels).
426429

427-
3. **Team**: Covered by `customfield_12313240: '4158'`.
430+
3. **Team**: Covered by `customfield_10001: "ec74d716-af36-4b3c-950f-f79213d08f71-1809"` (plain string, not `{"id": "..."}`).
428431

429432
4. **Post-Creation Status**: API-created issues might start in 'New' or 'Backlog' depending on project workflow. If triaging implies moving from 'New' to 'Backlog', this might require a subsequent `mcp_atlassian_jira_transition_issue` call.
430433

.claude/skills/dev-workflow/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Wait for both the backend (port `4000`) and the frontend dev server (port `4010`
6868

6969
Use the browser MCP's navigation tool to open:
7070

71-
```
71+
```text
7272
http://localhost:4010/<path>
7373
```
7474

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Create a Package Doc and Register in BOOKMARKS.md
2+
3+
## Purpose
4+
5+
Scaffold a package doc for any package under `packages/` and register it in `BOOKMARKS.md`.
6+
7+
## Prerequisites
8+
9+
- `docs/guidelines.md` — style and structure rules
10+
- `docs/templates/package-template.md` — the package doc template
11+
- `BOOKMARKS.md` — updated automatically by this skill
12+
13+
## Inputs
14+
15+
```text
16+
$ARGUMENTS — package name (directory name under packages/).
17+
```
18+
19+
## Workflow
20+
21+
1. **Verify** the package exists at `packages/$ARGUMENTS/`.
22+
23+
2. **Determine package type** (before creating any files):
24+
- Has `frontend/src/` or `bff/`**full doc**
25+
- Tooling-only → **stub only** (README.md; no overview.md)
26+
27+
3. **Read** the template (`docs/templates/package-template.md`) and `docs/guidelines.md`.
28+
29+
4. **Research the package** — read only files that exist:
30+
- `packages/$ARGUMENTS/README.md`
31+
- `packages/$ARGUMENTS/package.json`
32+
- `packages/$ARGUMENTS/Makefile`
33+
- `packages/$ARGUMENTS/bff/` or `packages/$ARGUMENTS/upstream/bff/`
34+
- `packages/$ARGUMENTS/frontend/src/` (browse structure)
35+
36+
5. **For full-doc packages** — create `packages/$ARGUMENTS/docs/overview.md`:
37+
- Fill every applicable section with real content
38+
- Omit template sections that don't apply — no "Not applicable" filler
39+
- Interactions must name the main ODH Dashboard and at least one other dependency
40+
- Target under 300 lines (hard limit 500)
41+
42+
6. **Update BOOKMARKS.md**:
43+
- Full-doc → **Packages > Full Docs**
44+
- Stub → **Packages > Stubs**
45+
46+
## Output
47+
48+
- `packages/$ARGUMENTS/docs/overview.md` (full-doc packages only)
49+
- `BOOKMARKS.md` updated with the new entry
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Create a New Doc from a Prompt
2+
3+
## Purpose
4+
5+
Generate a new documentation file from a natural language description. Identifies the doc
6+
type, selects a template if one exists, reads source files, and writes a doc conforming to
7+
`docs/guidelines.md`.
8+
9+
## Prerequisites
10+
11+
- `docs/guidelines.md` — style and structure rules
12+
- Templates (when applicable): `docs/templates/frontend-template.md`,
13+
`docs/templates/backend-template.md`, `docs/templates/package-template.md`
14+
15+
## Inputs
16+
17+
```text
18+
$ARGUMENTS — natural language description of what to document.
19+
```
20+
21+
## Workflow
22+
23+
1. **Parse** `$ARGUMENTS` to identify the subject, doc type, and any specific
24+
files/packages mentioned.
25+
26+
2. **Select template** (if one exists):
27+
- Frontend area → `docs/templates/frontend-template.md`
28+
- Backend module → `docs/templates/backend-template.md`
29+
- Package overview → `docs/templates/package-template.md`
30+
- ADR → check `packages/<pkg>/docs/adr/` for a template; else use MADR format
31+
- All other types → follow `docs/guidelines.md` directly
32+
33+
3. **Read** the template (if selected) and `docs/guidelines.md`.
34+
35+
4. **Research the subject** — read relevant source files:
36+
- Frontend area: `frontend/src/pages/<area>/`, `frontend/src/concepts/<area>/`
37+
- Backend module: `backend/src/routes/`, `backend/src/`
38+
- Package: README, bff/, frontend/src/, Makefile, package.json
39+
- Other types: the relevant source code and any existing related docs
40+
41+
5. **Determine output path**:
42+
- Frontend area: `frontend/docs/<area-name>.md`
43+
- Backend module: `backend/docs/<module-name>.md`
44+
- Package overview: `packages/<name>/docs/overview.md`
45+
- ADR: `packages/<name>/docs/adr/NNNN-<short-title>.md`
46+
- Guide: `packages/<name>/docs/<guide-type>.md`
47+
- README: `<directory>/README.md`
48+
- Agent rule: `.claude/rules/<rule-name>.md`
49+
50+
6. **Write the doc**:
51+
- No placeholder text (`[Description]`, `TODO`, `TBD`)
52+
- Omit template sections that don't apply — no "Not applicable" filler
53+
- Interactions section must name at least 1 concrete dependency
54+
- Target under 300 lines (hard limit 500)
55+
56+
7. **Remind** user to verify links and update BOOKMARKS.md if applicable.
57+
58+
## Output
59+
60+
- A new doc file at the determined path.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Update Documentation from Git Diff
2+
3+
## Purpose
4+
5+
Update docs to reflect code changes. Identifies affected docs via BOOKMARKS.md and updates
6+
only the sections that changed.
7+
8+
## Prerequisites
9+
10+
- `docs/guidelines.md` — style and structure rules
11+
- `BOOKMARKS.md` — index of all maintained docs (source of truth for file-to-doc mapping)
12+
13+
## Inputs
14+
15+
```text
16+
$ARGUMENTS (optional):
17+
--no-cache [scope] Full rewrite from source. Scope: path, keyword, or omit for all.
18+
HEAD~1, abc1234, abc..def Git reference for diff-based update.
19+
(empty) Defaults to HEAD (uncommitted changes + untracked files).
20+
```
21+
22+
## Workflow
23+
24+
### A. `--no-cache` mode (full refresh)
25+
26+
1. **Resolve target docs**: If a scope filter is given, match it against BOOKMARKS.md entries.
27+
Otherwise, collect every doc listed in BOOKMARKS.md.
28+
2. **Read `docs/guidelines.md`** and the relevant template for each doc.
29+
3. **For each doc**: read the doc, read the source code it describes, rewrite every section
30+
from current source. Keep under 300 lines (hard limit 500).
31+
4. **Show summary** and ask for confirmation before writing.
32+
5. **Verify BOOKMARKS.md** links still resolve.
33+
34+
### B. Diff-based mode (default)
35+
36+
1. **Determine changed files**:
37+
```bash
38+
git diff $ARGUMENTS --name-only
39+
git ls-files --others --exclude-standard
40+
```
41+
42+
2. **Map changed files to docs** using BOOKMARKS.md as the source of truth:
43+
- Read BOOKMARKS.md to get all indexed doc paths and their descriptions.
44+
- For each changed file, determine which doc covers that area:
45+
- `frontend/src/pages/<area>/**` or `frontend/src/concepts/<area>/**` → the frontend
46+
area doc listed in BOOKMARKS.md whose description matches `<area>`.
47+
- `backend/src/**``backend/docs/overview.md`.
48+
- `packages/<name>/**``packages/<name>/docs/overview.md`.
49+
- Also check non-indexed docs if the change affects env vars, deployment config,
50+
OpenAPI specs, webpack/MF config, or auth middleware — search nearby READMEs and
51+
`docs/` directories for references to the changed files.
52+
53+
3. **For each affected doc**:
54+
a. Read the doc and its template (if template-based).
55+
b. Read `docs/guidelines.md`.
56+
c. Identify which sections are impacted by the diff.
57+
d. Update only affected sections — do not rewrite unaffected content.
58+
e. Keep under 300 lines (hard limit 500).
59+
60+
4. **Show summary** of proposed changes and ask for confirmation:
61+
```text
62+
The following docs will be updated:
63+
- <file>: Section "<name>" — <reason>
64+
Proceed? (yes/no)
65+
```
66+
67+
5. **Write** after confirmation. **Verify BOOKMARKS.md** links still resolve.
68+
69+
## Output
70+
71+
- Updated doc file(s) with changed sections.
72+
- Summary of which sections changed and why.

0 commit comments

Comments
 (0)