Skip to content

Commit ca87e9e

Browse files
authored
fix: status home redirect (#47)
* feat: move status route and format repo * fix: resolve lint warnings * fix: load bucket usage asynchronously * fix: sign version config request * fix: show spinner for bucket usage loading * fix: prevent object list fetch loop * fix: dedupe list requests * feat: add sidebar version footer
1 parent ba0ceb5 commit ca87e9e

205 files changed

Lines changed: 3210 additions & 6277 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.

‎.github/ISSUE_TEMPLATE/bug_report.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
name: Bug Report
33
about: Create a report to help us improve
4-
title: '[BUG] '
5-
labels: ['bug', 'needs-triage']
6-
assignees: ''
4+
title: "[BUG] "
5+
labels: ["bug", "needs-triage"]
6+
assignees: ""
77
---
88

99
# Bug Report

‎.github/ISSUE_TEMPLATE/feature_request.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
name: Feature Request
33
about: Suggest an idea for this project
4-
title: '[FEATURE] '
5-
labels: ['enhancement', 'needs-discussion']
6-
assignees: ''
4+
title: "[FEATURE] "
5+
labels: ["enhancement", "needs-discussion"]
6+
assignees: ""
77
---
88

99
# Feature Request

‎.github/prompts/analyze.prompt.md‎

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Execution steps:
2020
- SPEC = FEATURE_DIR/spec.md
2121
- PLAN = FEATURE_DIR/plan.md
2222
- TASKS = FEATURE_DIR/tasks.md
23-
Abort with an error message if any required file is missing (instruct the user to run missing prerequisite command).
23+
Abort with an error message if any required file is missing (instruct the user to run missing prerequisite command).
2424

2525
2. Load artifacts:
2626
- Parse spec.md sections: Overview/Context, Functional Requirements, Non-Functional Requirements, User Stories, Edge Cases (if present).
@@ -36,26 +36,26 @@ Execution steps:
3636

3737
4. Detection passes:
3838
A. Duplication detection:
39-
- Identify near-duplicate requirements. Mark lower-quality phrasing for consolidation.
40-
B. Ambiguity detection:
41-
- Flag vague adjectives (fast, scalable, secure, intuitive, robust) lacking measurable criteria.
42-
- Flag unresolved placeholders (TODO, TKTK, ???, <placeholder>, etc.).
43-
C. Underspecification:
44-
- Requirements with verbs but missing object or measurable outcome.
45-
- User stories missing acceptance criteria alignment.
46-
- Tasks referencing files or components not defined in spec/plan.
47-
D. Constitution alignment:
48-
- Any requirement or plan element conflicting with a MUST principle.
49-
- Missing mandated sections or quality gates from constitution.
50-
E. Coverage gaps:
51-
- Requirements with zero associated tasks.
52-
- Tasks with no mapped requirement/story.
53-
- Non-functional requirements not reflected in tasks (e.g., performance, security).
54-
F. Inconsistency:
55-
- Terminology drift (same concept named differently across files).
56-
- Data entities referenced in plan but absent in spec (or vice versa).
57-
- Task ordering contradictions (e.g., integration tasks before foundational setup tasks without dependency note).
58-
- Conflicting requirements (e.g., one requires to use Next.js while other says to use Vue as the framework).
39+
- Identify near-duplicate requirements. Mark lower-quality phrasing for consolidation.
40+
B. Ambiguity detection:
41+
- Flag vague adjectives (fast, scalable, secure, intuitive, robust) lacking measurable criteria.
42+
- Flag unresolved placeholders (TODO, TKTK, ???, <placeholder>, etc.).
43+
C. Underspecification:
44+
- Requirements with verbs but missing object or measurable outcome.
45+
- User stories missing acceptance criteria alignment.
46+
- Tasks referencing files or components not defined in spec/plan.
47+
D. Constitution alignment:
48+
- Any requirement or plan element conflicting with a MUST principle.
49+
- Missing mandated sections or quality gates from constitution.
50+
E. Coverage gaps:
51+
- Requirements with zero associated tasks.
52+
- Tasks with no mapped requirement/story.
53+
- Non-functional requirements not reflected in tasks (e.g., performance, security).
54+
F. Inconsistency:
55+
- Terminology drift (same concept named differently across files).
56+
- Data entities referenced in plan but absent in spec (or vice versa).
57+
- Task ordering contradictions (e.g., integration tasks before foundational setup tasks without dependency note).
58+
- Conflicting requirements (e.g., one requires to use Next.js while other says to use Vue as the framework).
5959

6060
5. Severity assignment heuristic:
6161
- CRITICAL: Violates constitution MUST, missing core spec artifact, or requirement with zero coverage that blocks baseline functionality.
@@ -66,9 +66,11 @@ Execution steps:
6666
6. Produce a Markdown report (no file writes) with sections:
6767

6868
### Specification Analysis Report
69-
| ID | Category | Severity | Location(s) | Summary | Recommendation |
70-
|----|----------|----------|-------------|---------|----------------|
71-
| A1 | Duplication | HIGH | spec.md:L120-134 | Two similar requirements ... | Merge phrasing; keep clearer version |
69+
70+
| ID | Category | Severity | Location(s) | Summary | Recommendation |
71+
| --- | ----------- | -------- | ---------------- | ---------------------------- | ------------------------------------ |
72+
| A1 | Duplication | HIGH | spec.md:L120-134 | Two similar requirements ... | Merge phrasing; keep clearer version |
73+
7274
(Add one row per finding; generate stable IDs prefixed by category initial.)
7375

7476
Additional subsections:
@@ -77,12 +79,12 @@ Execution steps:
7779
- Constitution Alignment Issues (if any)
7880
- Unmapped Tasks (if any)
7981
- Metrics:
80-
* Total Requirements
81-
* Total Tasks
82-
* Coverage % (requirements with >=1 task)
83-
* Ambiguity Count
84-
* Duplication Count
85-
* Critical Issues Count
82+
- Total Requirements
83+
- Total Tasks
84+
- Coverage % (requirements with >=1 task)
85+
- Ambiguity Count
86+
- Duplication Count
87+
- Critical Issues Count
8688

8789
7. At end of report, output a concise Next Actions block:
8890
- If CRITICAL issues exist: Recommend resolving before `/implement`.
@@ -92,6 +94,7 @@ Execution steps:
9294
8. Ask the user: "Would you like me to suggest concrete remediation edits for the top N issues?" (Do NOT apply them automatically.)
9395

9496
Behavior rules:
97+
9598
- NEVER modify files.
9699
- NEVER hallucinate missing sections—if absent, report them.
97100
- KEEP findings deterministic: if rerun without changes, produce consistent IDs and counts.

‎.github/prompts/clarify.prompt.md‎

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -77,56 +77,56 @@ Execution steps:
7777
- Information is better deferred to planning phase (note internally)
7878

7979
3. Generate (internally) a prioritized queue of candidate clarification questions (maximum 5). Do NOT output them all at once. Apply these constraints:
80-
- Maximum of 5 total questions across the whole session.
81-
- Each question must be answerable with EITHER:
82-
* A short multiple‑choice selection (2–5 distinct, mutually exclusive options), OR
83-
* A one-word / short‑phrase answer (explicitly constrain: "Answer in <=5 words").
80+
- Maximum of 5 total questions across the whole session.
81+
- Each question must be answerable with EITHER:
82+
- A short multiple‑choice selection (2–5 distinct, mutually exclusive options), OR
83+
- A one-word / short‑phrase answer (explicitly constrain: "Answer in <=5 words").
8484
- Only include questions whose answers materially impact architecture, data modeling, task decomposition, test design, UX behavior, operational readiness, or compliance validation.
8585
- Ensure category coverage balance: attempt to cover the highest impact unresolved categories first; avoid asking two low-impact questions when a single high-impact area (e.g., security posture) is unresolved.
8686
- Exclude questions already answered, trivial stylistic preferences, or plan-level execution details (unless blocking correctness).
8787
- Favor clarifications that reduce downstream rework risk or prevent misaligned acceptance tests.
88-
- If more than 5 categories remain unresolved, select the top 5 by (Impact * Uncertainty) heuristic.
88+
- If more than 5 categories remain unresolved, select the top 5 by (Impact \* Uncertainty) heuristic.
8989

9090
4. Sequential questioning loop (interactive):
91-
- Present EXACTLY ONE question at a time.
92-
- For multiple‑choice questions render options as a Markdown table:
93-
94-
| Option | Description |
95-
|--------|-------------|
96-
| A | <Option A description> |
97-
| B | <Option B description> |
98-
| C | <Option C description> | (add D/E as needed up to 5)
99-
| Short | Provide a different short answer (<=5 words) | (Include only if free-form alternative is appropriate)
100-
101-
- For short‑answer style (no meaningful discrete options), output a single line after the question: `Format: Short answer (<=5 words)`.
102-
- After the user answers:
103-
* Validate the answer maps to one option or fits the <=5 word constraint.
104-
* If ambiguous, ask for a quick disambiguation (count still belongs to same question; do not advance).
105-
* Once satisfactory, record it in working memory (do not yet write to disk) and move to the next queued question.
106-
- Stop asking further questions when:
107-
* All critical ambiguities resolved early (remaining queued items become unnecessary), OR
108-
* User signals completion ("done", "good", "no more"), OR
109-
* You reach 5 asked questions.
110-
- Never reveal future queued questions in advance.
111-
- If no valid questions exist at start, immediately report no critical ambiguities.
91+
- Present EXACTLY ONE question at a time.
92+
- For multiple‑choice questions render options as a Markdown table:
93+
94+
| Option | Description |
95+
| ------ | -------------------------------------------- | ------------------------------------------------------ |
96+
| A | <Option A description> |
97+
| B | <Option B description> |
98+
| C | <Option C description> | (add D/E as needed up to 5) |
99+
| Short | Provide a different short answer (<=5 words) | (Include only if free-form alternative is appropriate) |
100+
101+
- For short‑answer style (no meaningful discrete options), output a single line after the question: `Format: Short answer (<=5 words)`.
102+
- After the user answers:
103+
- Validate the answer maps to one option or fits the <=5 word constraint.
104+
- If ambiguous, ask for a quick disambiguation (count still belongs to same question; do not advance).
105+
- Once satisfactory, record it in working memory (do not yet write to disk) and move to the next queued question.
106+
- Stop asking further questions when:
107+
- All critical ambiguities resolved early (remaining queued items become unnecessary), OR
108+
- User signals completion ("done", "good", "no more"), OR
109+
- You reach 5 asked questions.
110+
- Never reveal future queued questions in advance.
111+
- If no valid questions exist at start, immediately report no critical ambiguities.
112112

113113
5. Integration after EACH accepted answer (incremental update approach):
114-
- Maintain in-memory representation of the spec (loaded once at start) plus the raw file contents.
115-
- For the first integrated answer in this session:
116-
* Ensure a `## Clarifications` section exists (create it just after the highest-level contextual/overview section per the spec template if missing).
117-
* Under it, create (if not present) a `### Session YYYY-MM-DD` subheading for today.
118-
- Append a bullet line immediately after acceptance: `- Q: <question> → A: <final answer>`.
119-
- Then immediately apply the clarification to the most appropriate section(s):
120-
* Functional ambiguity → Update or add a bullet in Functional Requirements.
121-
* User interaction / actor distinction → Update User Stories or Actors subsection (if present) with clarified role, constraint, or scenario.
122-
* Data shape / entities → Update Data Model (add fields, types, relationships) preserving ordering; note added constraints succinctly.
123-
* Non-functional constraint → Add/modify measurable criteria in Non-Functional / Quality Attributes section (convert vague adjective to metric or explicit target).
124-
* Edge case / negative flow → Add a new bullet under Edge Cases / Error Handling (or create such subsection if template provides placeholder for it).
125-
* Terminology conflict → Normalize term across spec; retain original only if necessary by adding `(formerly referred to as "X")` once.
126-
- If the clarification invalidates an earlier ambiguous statement, replace that statement instead of duplicating; leave no obsolete contradictory text.
127-
- Save the spec file AFTER each integration to minimize risk of context loss (atomic overwrite).
128-
- Preserve formatting: do not reorder unrelated sections; keep heading hierarchy intact.
129-
- Keep each inserted clarification minimal and testable (avoid narrative drift).
114+
- Maintain in-memory representation of the spec (loaded once at start) plus the raw file contents.
115+
- For the first integrated answer in this session:
116+
- Ensure a `## Clarifications` section exists (create it just after the highest-level contextual/overview section per the spec template if missing).
117+
- Under it, create (if not present) a `### Session YYYY-MM-DD` subheading for today.
118+
- Append a bullet line immediately after acceptance: `- Q: <question> → A: <final answer>`.
119+
- Then immediately apply the clarification to the most appropriate section(s):
120+
- Functional ambiguity → Update or add a bullet in Functional Requirements.
121+
- User interaction / actor distinction → Update User Stories or Actors subsection (if present) with clarified role, constraint, or scenario.
122+
- Data shape / entities → Update Data Model (add fields, types, relationships) preserving ordering; note added constraints succinctly.
123+
- Non-functional constraint → Add/modify measurable criteria in Non-Functional / Quality Attributes section (convert vague adjective to metric or explicit target).
124+
- Edge case / negative flow → Add a new bullet under Edge Cases / Error Handling (or create such subsection if template provides placeholder for it).
125+
- Terminology conflict → Normalize term across spec; retain original only if necessary by adding `(formerly referred to as "X")` once.
126+
- If the clarification invalidates an earlier ambiguous statement, replace that statement instead of duplicating; leave no obsolete contradictory text.
127+
- Save the spec file AFTER each integration to minimize risk of context loss (atomic overwrite).
128+
- Preserve formatting: do not reorder unrelated sections; keep heading hierarchy intact.
129+
- Keep each inserted clarification minimal and testable (avoid narrative drift).
130130

131131
6. Validation (performed after EACH write plus final pass):
132132
- Clarifications session contains exactly one bullet per accepted answer (no duplicates).
@@ -147,12 +147,13 @@ Execution steps:
147147
- Suggested next command.
148148

149149
Behavior rules:
150+
150151
- If no meaningful ambiguities found (or all potential questions would be low-impact), respond: "No critical ambiguities detected worth formal clarification." and suggest proceeding.
151152
- If spec file missing, instruct user to run `/specify` first (do not create a new spec here).
152153
- Never exceed 5 total asked questions (clarification retries for a single question do not count as new questions).
153154
- Avoid speculative tech stack questions unless the absence blocks functional clarity.
154155
- Respect user early termination signals ("stop", "done", "proceed").
155-
- If no questions asked due to full coverage, output a compact coverage summary (all categories Clear) then suggest advancing.
156-
- If quota reached with unresolved high-impact categories remaining, explicitly flag them under Deferred with rationale.
156+
- If no questions asked due to full coverage, output a compact coverage summary (all categories Clear) then suggest advancing.
157+
- If quota reached with unresolved high-impact categories remaining, explicitly flag them under Deferred with rationale.
157158

158159
Context for prioritization: $ARGUMENTS

‎.github/prompts/constitution.prompt.md‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ Follow this execution flow:
1414

1515
1. Load the existing constitution template at `.specify/memory/constitution.md`.
1616
- Identify every placeholder token of the form `[ALL_CAPS_IDENTIFIER]`.
17-
**IMPORTANT**: The user might require less or more principles than the ones used in the template. If a number is specified, respect that - follow the general template. You will update the doc accordingly.
17+
**IMPORTANT**: The user might require less or more principles than the ones used in the template. If a number is specified, respect that - follow the general template. You will update the doc accordingly.
1818

1919
2. Collect/derive values for placeholders:
2020
- If user input (conversation) supplies a value, use it.
2121
- Otherwise infer from existing repo context (README, docs, prior constitution versions if embedded).
2222
- For governance dates: `RATIFICATION_DATE` is the original adoption date (if unknown ask or mark TODO), `LAST_AMENDED_DATE` is today if changes are made, otherwise keep previous.
2323
- `CONSTITUTION_VERSION` must increment according to semantic versioning rules:
24-
* MAJOR: Backward incompatible governance/principle removals or redefinitions.
25-
* MINOR: New principle/section added or materially expanded guidance.
26-
* PATCH: Clarifications, wording, typo fixes, non-semantic refinements.
24+
- MAJOR: Backward incompatible governance/principle removals or redefinitions.
25+
- MINOR: New principle/section added or materially expanded guidance.
26+
- PATCH: Clarifications, wording, typo fixes, non-semantic refinements.
2727
- If version bump type ambiguous, propose reasoning before finalizing.
2828

2929
3. Draft the updated constitution content:
@@ -61,6 +61,7 @@ Follow this execution flow:
6161
- Suggested commit message (e.g., `docs: amend constitution to vX.Y.Z (principle additions + governance update)`).
6262

6363
Formatting & Style Requirements:
64+
6465
- Use Markdown headings exactly as in the template (do not demote/promote levels).
6566
- Wrap long rationale lines to keep readability (<100 chars ideally) but do not hard enforce with awkward breaks.
6667
- Keep a single blank line between sections.

‎.github/prompts/implement.prompt.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ $ARGUMENTS
2626

2727
4. Execute implementation following the task plan:
2828
- **Phase-by-phase execution**: Complete each phase before moving to the next
29-
- **Respect dependencies**: Run sequential tasks in order, parallel tasks [P] can run together
29+
- **Respect dependencies**: Run sequential tasks in order, parallel tasks [P] can run together
3030
- **Follow TDD approach**: Execute test tasks before their corresponding implementation tasks
3131
- **File-based coordination**: Tasks affecting the same files must run sequentially
3232
- **Validation checkpoints**: Verify each phase completion before proceeding

‎.github/prompts/plan.prompt.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ Given the implementation details provided as an argument, do this:
2727
- The template is self-contained and executable
2828
- Follow error handling and gate checks as specified
2929
- Let the template guide artifact generation in $SPECS_DIR:
30-
* Phase 0 generates research.md
31-
* Phase 1 generates data-model.md, contracts/, quickstart.md
32-
* Phase 2 generates tasks.md
30+
- Phase 0 generates research.md
31+
- Phase 1 generates data-model.md, contracts/, quickstart.md
32+
- Phase 2 generates tasks.md
3333
- Incorporate user-provided details from arguments into Technical Context: $ARGUMENTS
3434
- Update Progress Tracking as you complete each phase
3535

‎.github/prompts/specify.prompt.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ The text the user typed after `/specify` in the triggering message **is** the fe
1313
Given that feature description, do this:
1414

1515
1. Run the script `.specify/scripts/bash/create-new-feature.sh --json "$ARGUMENTS"` from repo root and parse its JSON output for BRANCH_NAME and SPEC_FILE. All file paths must be absolute.
16-
**IMPORTANT** You must only ever run this script once. The JSON is provided in the terminal as output - always refer to it to get the actual content you're looking for.
16+
**IMPORTANT** You must only ever run this script once. The JSON is provided in the terminal as output - always refer to it to get the actual content you're looking for.
1717
2. Load `.specify/templates/spec-template.md` to understand required sections.
1818
3. Write the specification to SPEC_FILE using the template structure, replacing placeholders with concrete details derived from the feature description (arguments) while preserving section order and headings.
1919
4. Report completion with branch name, spec file path, and readiness for the next phase.

0 commit comments

Comments
 (0)