Skip to content

Commit fe10ae7

Browse files
authored
Merge pull request #1 from watany-dev/dev
Dev
2 parents 4b2d678 + 076d236 commit fe10ae7

26 files changed

Lines changed: 4193 additions & 0 deletions

File tree

.agents/skills/grill-me/SKILL.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
name: grill-me
3+
description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
4+
---
5+
6+
Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
7+
8+
Ask the questions one at a time.
9+
10+
If a question can be answered by exploring the codebase, explore the codebase instead.
11+
12+
Once we reach shared understanding, record the decisions and their reasoning as an ADR under `docs/adr/` (filename: `NNNN-<slug>.md`, sequential number).
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
name: update-design
3+
description: Review or update repository design documents, compare them with the actual codebase, and surface concrete gaps before implementation proceeds. Use when working on docs/design, ADRs, architecture notes, or when a plan depends on design quality.
4+
---
5+
6+
# update-design
7+
8+
Review design documents against the current repository state and improve them before implementation depends on them.
9+
10+
## Phase 1: Gather Context
11+
12+
Read only what is relevant:
13+
14+
1. `docs/design/*.md`, `docs/adr/*.md`, and architecture notes under `docs/`
15+
2. `docs/development-memo.md` when present
16+
3. the source directories touched by the design
17+
4. build manifests and CI workflows that constrain implementation
18+
5. `AGENT.md`
19+
20+
If design docs do not exist, report that first and switch to proposing a minimal design outline derived from the current memo and README.
21+
22+
## Phase 2: Evaluate the Design
23+
24+
Score each relevant document across these categories:
25+
26+
1. module and ownership boundaries
27+
2. data flow and control flow
28+
3. interfaces, types, and configuration surface
29+
4. failure modes, validation, and observability
30+
5. testing and rollout strategy
31+
32+
Use a 100-point scale. Treat 90+ as ready for implementation.
33+
34+
## Phase 3: Check Against the Code
35+
36+
Confirm whether the design matches reality:
37+
38+
1. documented modules exist
39+
2. names and paths match the codebase
40+
3. described behaviors are implemented or clearly marked as planned
41+
4. validation steps match the actual tooling
42+
43+
Call out both directions:
44+
45+
- documented but not implemented
46+
- implemented but undocumented
47+
48+
## Phase 4: Produce Improvements
49+
50+
Return a concise report in this shape:
51+
52+
```markdown
53+
## Design Review
54+
55+
### <document>
56+
| Category | Score |
57+
|---|---:|
58+
| Module boundaries | XX |
59+
| Data flow | XX |
60+
| Interfaces | XX |
61+
| Failure modes | XX |
62+
| Testing and rollout | XX |
63+
64+
Average: XX.X
65+
66+
Issues:
67+
- ...
68+
69+
Recommended edits:
70+
- ...
71+
72+
Code mismatch:
73+
- ...
74+
```
75+
76+
## Editing Rules
77+
78+
- keep design docs implementation-oriented
79+
- prefer concrete file paths, types, commands, and invariants
80+
- do not restate obvious code when a short reference is enough
81+
- if a design decision matters later, suggest an ADR under `docs/adr/`
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
name: update-docs
3+
description: Synchronize README, docs, and AGENT guidance with the actual codebase and tooling. Use when implementation changed commands, behavior, configuration, architecture, or project structure.
4+
---
5+
6+
# update-docs
7+
8+
Update repository documentation to match the current implementation.
9+
10+
## Phase 1: Inspect the Current Source of Truth
11+
12+
Read the smallest set of files that define behavior:
13+
14+
1. entry points and changed source files
15+
2. build and dependency manifests
16+
3. CI workflows
17+
4. `README.md`, `docs/`, `AGENT.md`
18+
5. `docs/development-memo.md` when present
19+
20+
Do not update docs from memory. Derive every command and path from the repository.
21+
22+
## Phase 2: Update the Right Document
23+
24+
Use this split:
25+
26+
- `README.md`: how to install, run, configure, and use the project
27+
- `docs/`: design rationale, ADRs, requirements, internal notes
28+
- `AGENT.md`: repo-specific instructions for Codex
29+
30+
For GitReal specifically, keep `README.md` and `docs/development-memo.md` aligned on:
31+
32+
1. executable name `git-real`
33+
2. user-facing command `git real`
34+
3. safety model around `arm`, backups, and rescue
35+
4. planned Go-based architecture
36+
37+
Common updates:
38+
39+
1. build, test, lint, format, or release commands
40+
2. config file names and option descriptions
41+
3. module layout and entry points
42+
4. examples and sample outputs
43+
5. workflow or validation requirements
44+
45+
## Phase 3: Consistency Check
46+
47+
Verify consistency across docs:
48+
49+
1. file paths
50+
2. command names
51+
3. option flags
52+
4. module names
53+
5. stated prerequisites
54+
55+
If the repo has no established command for something, say that plainly instead of inventing one.
56+
57+
## Phase 4: Report the Update
58+
59+
Summarize in this form:
60+
61+
```markdown
62+
## Documentation Update
63+
64+
Updated:
65+
- <file>: <what changed>
66+
67+
Open gaps:
68+
- ...
69+
70+
Remaining assumptions:
71+
- ...
72+
```
73+
74+
## Editing Rules
75+
76+
- keep README user-facing and concise
77+
- keep developer guidance close to the code it explains
78+
- prefer exact commands over prose-only instructions
79+
- remove stale claims instead of softening them
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
name: update-plan
3+
description: Stress-test an implementation plan against the current codebase, design docs, and repo constraints before presenting it. Use for substantial plans, phased work, refactors, or multi-file features.
4+
---
5+
6+
# update-plan
7+
8+
Run this immediately before presenting a substantial implementation plan.
9+
10+
## Phase 1: Gather Inputs
11+
12+
Collect the minimum relevant context:
13+
14+
1. the current draft plan
15+
2. `AGENT.md`
16+
3. related design docs, ADRs, requirements, roadmap items, issue notes, and `docs/development-memo.md`
17+
4. the source files and manifests the plan touches
18+
19+
## Phase 2: Validate the Plan
20+
21+
Check the plan for:
22+
23+
1. correct assumptions about the current codebase
24+
2. independently verifiable steps
25+
3. separation of structural cleanup from behavior changes
26+
4. explicit validation for each risky step
27+
5. impact on docs, config, CI, and tests
28+
29+
## Phase 3: Find Gaps
30+
31+
Flag these issues by priority:
32+
33+
- `P0`: plan contradicts code or requirements
34+
- `P1`: step ordering, missing validation, or unclear ownership
35+
- `P2`: useful follow-up work or documentation debt
36+
37+
## Phase 4: Rewrite the Plan
38+
39+
Return the improved plan with:
40+
41+
1. ordered steps
42+
2. affected files or directories
43+
3. validation per step
44+
4. risks or dependencies
45+
5. missing design or documentation prerequisites
46+
47+
Use this output shape:
48+
49+
```markdown
50+
## Plan Check
51+
52+
Issues:
53+
- P0: ...
54+
- P1: ...
55+
- P2: ...
56+
57+
Revised plan:
58+
1. ...
59+
2. ...
60+
3. ...
61+
```
62+
63+
## Plan Quality Bar
64+
65+
- each step should change one coherent thing
66+
- each step should have an observable completion signal
67+
- broad refactors must justify why they cannot be split
68+
- if design is too vague, route back through `update-design`

.github/workflows/ci.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: ci
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
9+
jobs:
10+
check:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- uses: actions/setup-go@v5
17+
with:
18+
go-version-file: go.mod
19+
20+
- run: go mod download
21+
- run: make check

.github/workflows/release.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build-release:
13+
runs-on: ubuntu-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
include:
18+
- goos: darwin
19+
goarch: amd64
20+
archive_ext: tar.gz
21+
binary_name: git-real
22+
- goos: darwin
23+
goarch: arm64
24+
archive_ext: tar.gz
25+
binary_name: git-real
26+
- goos: linux
27+
goarch: amd64
28+
archive_ext: tar.gz
29+
binary_name: git-real
30+
- goos: linux
31+
goarch: arm64
32+
archive_ext: tar.gz
33+
binary_name: git-real
34+
- goos: windows
35+
goarch: amd64
36+
archive_ext: zip
37+
binary_name: git-real.exe
38+
39+
steps:
40+
- uses: actions/checkout@v4
41+
42+
- uses: actions/setup-go@v5
43+
with:
44+
go-version-file: go.mod
45+
46+
- run: go mod download
47+
48+
- name: Build archive
49+
run: |
50+
set -euo pipefail
51+
artifact_name="git-real_${{ matrix.goos }}_${{ matrix.goarch }}"
52+
archive_name="${artifact_name}.${{ matrix.archive_ext }}"
53+
54+
mkdir -p "dist/${artifact_name}"
55+
56+
GOOS="${{ matrix.goos }}" GOARCH="${{ matrix.goarch }}" go build -o "dist/${artifact_name}/${{ matrix.binary_name }}" ./cmd/git-real
57+
58+
if [ "${{ matrix.archive_ext }}" = "zip" ]; then
59+
zip -j "dist/${archive_name}" "dist/${artifact_name}/${{ matrix.binary_name }}"
60+
else
61+
tar -C dist -czf "dist/${archive_name}" "${artifact_name}"
62+
fi
63+
64+
- uses: actions/upload-artifact@v4
65+
with:
66+
name: release-${{ matrix.goos }}-${{ matrix.goarch }}
67+
path: dist/*.*
68+
if-no-files-found: error
69+
70+
publish-release:
71+
runs-on: ubuntu-latest
72+
needs: build-release
73+
74+
steps:
75+
- uses: actions/download-artifact@v4
76+
with:
77+
path: dist
78+
pattern: release-*
79+
merge-multiple: true
80+
81+
- name: Generate checksums
82+
run: |
83+
set -euo pipefail
84+
sha256sum dist/* > dist/SHA256SUMS
85+
86+
- uses: softprops/action-gh-release@v2
87+
with:
88+
files: dist/*

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,8 @@ dist
141141
vite.config.js.timestamp-*
142142
vite.config.ts.timestamp-*
143143
.vite/
144+
145+
# Go
146+
.cache/
147+
coverage.out
148+
/git-real

0 commit comments

Comments
 (0)