Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions .github/workflows/lint-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@ jobs:
- name: Install dependencies
run: npm install
- name: Lint
run: npm -w frontend run lint
run: npm run lint
- name: Build
run: npm -w frontend run build
run: npm run build
File renamed without changes.
39 changes: 17 additions & 22 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,39 +23,34 @@ to rewrite and push the history.
| Auth — GitLab | PKCE in browser, no Worker involved |
| Git operations | GitHub Actions workflow in this repo (`extract.yml`) |
| Secret encryption | tweetnacl (libsodium box) inside the Worker |
| Monorepo | npm workspaces |

### Monorepo layout
### Repo layout

```
git-extract/
├── AGENTS.md ← you are here
├── CLAUDE.md ← Claude Code specific extensions
├── .github/workflows/
│ ├── ci.yml ← lint + build on PR
│ ├── lint-build.yml ← lint + build on PR
│ └── extract.yml ← the git extraction runner (permanent, never touched at runtime)
├── frontend/ ← Quasar SPA
│ └── src/
│ ├── boot/ ← fetch wrapper (api.js)
│ ├── components/ ← ProviderLogin, RepoList, FolderTree, StatusPoller
│ ├── layouts/ ← MainLayout
│ ├── pages/ ← LoginPage, ReposPage, ExtractPage
│ ├── router/
│ ├── services/ ← github.js, gitlab.js
│ └── stores/ ← auth.js, repos.js (Pinia)
└── worker/ ← Cloudflare Worker
└── src/
├── routes/ ← auth.js, extract.js, status.js
└── services/ ← crypto.js, actionsOrchestrator.js
├── src/ ← Quasar SPA source
│ ├── boot/ ← fetch wrapper (api.js)
│ ├── components/ ← ProviderLogin, RepoList, FolderTree, StatusPoller
│ ├── layouts/ ← MainLayout
│ ├── pages/ ← LoginPage, ReposPage, ExtractPage
│ ├── router/
│ ├── services/ ← github.js, gitlab.js
│ └── stores/ ← auth.js, repos.js (Pinia)
├── quasar.config.js
├── index.html
└── package.json
```

### Dev commands

```bash
npm install # install all workspaces from root
npm run dev:frontend # Quasar dev server → http://localhost:9000
npm run dev:worker # Wrangler dev → http://localhost:8787
npm run build # build both workspaces
npm install # install dependencies
npm run dev # Quasar dev server → http://localhost:9000
npm run build # build the SPA
```

---
Expand All @@ -70,7 +65,7 @@ npm run build # build both workspaces
- Do not add error handling for scenarios that cannot happen in the current call context.
- Prefer editing existing files over creating new ones.

### Frontend (`frontend/`)
### Frontend (`src/`)
- Vue 3 Composition API only — no Options API.
- Use Quasar components (`QBtn`, `QTree`, `QCard`, etc.) instead of plain HTML where a
Quasar equivalent exists.
Expand Down
6 changes: 3 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ Extends `AGENTS.md` — read that file first. Rules here are Claude Code specifi
## Exploration

- Use `Glob` and `Grep` tools before reading files — avoid loading large files speculatively.
- When a task touches both `frontend/` and `worker/`, explore them in parallel with sub-agents.
- When a task touches both `src/` and `worker/`, explore them in parallel with sub-agents.
- Prefer the `Explore` sub-agent for open-ended codebase searches.

## Making Changes

- Always read a file before editing it.
- Use `Edit` (targeted diff) rather than `Write` (full rewrite) for existing files.
- Run the relevant workspace lint/build after changes to catch issues early:
- Frontend: `npm -w frontend run lint`
- Run the relevant lint/build after changes to catch issues early:
- Frontend: `npm run lint`
- Worker: `npm -w worker run build`

## Git
Expand Down
33 changes: 0 additions & 33 deletions frontend/package.json

This file was deleted.

File renamed without changes.
Loading
Loading