Skip to content
This repository was archived by the owner on Jun 26, 2026. It is now read-only.

Commit 6a96633

Browse files
committed
refactor: add page co-location restructure to features.json
1 parent 5ca7a87 commit 6a96633

4 files changed

Lines changed: 23 additions & 54 deletions

File tree

.claude/commands/init-session.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
---
22
allowed-tools: Bash(git log:*), Bash(pwd), Bash(./init.sh), Bash(yarn test*), Bash(cat .dev-env.json), Read
3-
description: Run startup sequence (steps 1-6 from docs/WORKFLOW.md)
3+
description: Run startup sequence and pick a story from the Jira epic
44
---
55

66
# Session Onboard
77

8-
Execute the startup sequence from `docs/WORKFLOW.md`. AGENTS.md is always in context — no need to read it explicitly.
9-
108
## Steps
119

1210
1. **Confirm working directory** — run `pwd`.
@@ -17,8 +15,10 @@ Execute the startup sequence from `docs/WORKFLOW.md`. AGENTS.md is always in con
1715
```
1816

1917
3. **Check struggles** — read `docs/agent-struggles.json`. If unresolved entries exist, present to user.
20-
4. **Pick feature**read `docs/features.json`, find first `"passes": false` entry.
18+
4. **Run tests**run `yarn test` and verify app is healthy.
2119
5. **Start dev env** — run `./init.sh`.
2220
6. **Read ports** — read `.dev-env.json` and note the backend, plugin, and console ports.
23-
7. **Run tests** — run `yarn test` and verify app is healthy.
24-
8. **Wait** — tell the user you're oriented, report the picked feature and which step of the Feature Development Sequence you'd start at. When the user says to proceed, follow the Feature Development Sequence in `docs/WORKFLOW.md` step by step. Do NOT start any work autonomously.
21+
7. **Pick story** — tell the user you're oriented and propose picking a story from the PoC epic: <https://redhat.atlassian.net/browse/SRVOCF-810>. Ask the user to provide the story description (title, acceptance criteria, or a Jira link). The user may pick one story or a few small ones.
22+
8. **Create feature entry** — once the user provides a story, create a new entry in `docs/features.json` for it (append to the array, `"passes": false`).
23+
9. **Branch** — create a feature branch per [Branching](docs/WORKFLOW.md#branching) convention and open a draft PR (`gh pr create --draft`).
24+
10. **Propose planning** — tell the user the branch is ready and propose to start planning (step 2 of the Feature Development Sequence in `docs/WORKFLOW.md`). Do NOT start any work autonomously.

docs/WORKFLOW.md

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,14 @@
22

33
## Startup Sequence
44

5-
Every session, before doing any work:
6-
7-
1. `pwd` — confirm working directory
8-
2. Read `docs/claude-progress.txt` + `git log --oneline -10` — orient
9-
3. Read `docs/agent-struggles.json` — if unresolved entries exist, present to user
10-
4. Read `docs/features.json` — pick first `"passes": false` entry
11-
5. Run `./init.sh` — start dev env
12-
6. Read `.dev-env.json` — note the dev server ports (backend, plugin, console)
13-
7. Run tests — verify app is healthy
14-
8. If broken → fix first. If clean → start [Feature Development Sequence](#feature-development-sequence).
5+
Handled by the `init-session` command (`.claude/commands/init-session.md`).
156

167
## Feature Development Sequence
178

189
After [Startup Sequence](#startup-sequence), work through the picked feature:
1910

20-
1. **Plan**read `docs/ARCHITECTURE.md` + `docs/STYLEGUIDE.md` + `docs/TESTING.md`, then use `/brainstorming` to design the chosen feature from `docs/features.json`, then use `/writing-plans` to create implementation plan → `docs/plans/active/<NNN>-<type>-<short-name>.md`
21-
2. **Branch**create feature branch per [Branching](#branching) convention. Immediately push and open a **draft PR** (`gh pr create --draft`) to reserve the PR number for other contributors' branch numbering.
11+
1. **Branch**create feature branch per [Branching](#branching) convention. Immediately push and open a **draft PR** (`gh pr create --draft`) to reserve the PR number for other contributors' branch numbering.
12+
2. **Plan**read `docs/ARCHITECTURE.md` + `docs/STYLEGUIDE.md` + `docs/TESTING.md`, then use `/brainstorming` to design the chosen feature from `docs/features.json`, then use `/writing-plans` to create implementation plan → `docs/plans/active/<NNN>-<type>-<short-name>.md`
2213
3. **Implement** — using `/executing-plans` skill
2314
4. **Review** — code review using `/requesting-code-review` skill, fix found issues
2415
5. **Manual Test** — use browser automation and validate it works in the browser

docs/features.json

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -156,18 +156,6 @@
156156
],
157157
"passes": true
158158
},
159-
{
160-
"category": "functional",
161-
"description": "Function List Page shows deployed functions from all user-accessible namespaces without requiring a PAT",
162-
"steps": [
163-
"ClusterService refactored: remove ALL_NAMESPACES and useActiveNamespace logic, always watch across all user-accessible namespaces (functions in GitHub repos can target different namespaces via func.yaml, so single-namespace view is not useful; filtering deferred to a later feature)",
164-
"ClusterService lists all namespaces/projects accessible to the logged-in user and watches Deployments with label function.knative.dev/name across all of them",
165-
"Function List Page renders deployed functions even when no PAT has been entered (PatModal dismissed or not yet shown)",
166-
"When PAT is later provided, repo data from SourceControlService is merged with already-visible deployed functions",
167-
"Deployed functions without a matching repo still appear in the table with available cluster data (name, namespace, status, replicas, url)"
168-
],
169-
"passes": false
170-
},
171159
{
172160
"category": "functional",
173161
"description": "Set GitHub Secret (KUBECONFIG) on created function repos so GH Actions can deploy to the cluster",
@@ -178,5 +166,19 @@
178166
"GH Actions workflow can authenticate to the cluster and run func deploy"
179167
],
180168
"passes": true
169+
},
170+
{
171+
"category": "technical",
172+
"description": "Restructure project so page-specific components and hooks live close to their page, not in a shared /components directory",
173+
"steps": [
174+
"Evaluate co-location strategy (inline, page folder, or hybrid) and document the chosen convention",
175+
"Move CreateFunctionForm (+ test) into FunctionCreatePage directory (only used by CreatePage)",
176+
"Move FileTreeView (+ test) into FunctionEditPage directory (only used by EditPage)",
177+
"Move FunctionTable (+ test) into FunctionListPage directory (only used by ListPage)",
178+
"Verify shared components stay in /components: EmptyState (used by ListPage and EditPage), UserAvatar (used by all 3 pages)",
179+
"Update docs/ARCHITECTURE.md with the chosen co-location convention",
180+
"All tests pass, no broken imports"
181+
],
182+
"passes": false
181183
}
182184
]

docs/potential-features.json

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,4 @@
11
[
2-
{
3-
"category": "technical",
4-
"description": "Claude Code sandbox: isolated VM environment for autonomous agent development",
5-
"steps": [
6-
"Vagrant VM with Fedora (matching host OS) provisioned",
7-
"Project directory mounted into VM",
8-
"Full write permissions enabled for agent",
9-
"Git worktree creation works inside VM",
10-
"Agent can run full startup sequence autonomously in VM",
11-
"VM isolation ensures no leakage to host workstation"
12-
],
13-
"passes": false
14-
},
15-
{
16-
"category": "functional",
17-
"description": "Perspective-aware namespace scoping: developer perspective respects active namespace, admin perspective shows all namespaces cluster-wide",
18-
"steps": [
19-
"Developer perspective filters functions to the active project/namespace selected via the OCP project selector",
20-
"Admin perspective shows functions across all namespaces cluster-wide",
21-
"ClusterService supports both modes: single-namespace watch (dev) and all-namespaces watch (admin)",
22-
"Namespace column visible in admin perspective, hidden in dev perspective (redundant with project selector)"
23-
],
24-
"passes": false
25-
},
262
{
273
"category": "technical",
284
"description": "Replace per-file blob fetching in GithubService.fetch() with single archive download (downloadTarballArchive) and extraction for better performance",

0 commit comments

Comments
 (0)