https://github.com/celloopa/ghosted-web
https://github.com/celloopa/ghosted-web
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/celloopa/ghosted-web
- Owner: celloopa
- License: apache-2.0
- Created: 2026-06-15T16:10:53.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-07-08T00:34:38.000Z (13 days ago)
- Last Synced: 2026-07-08T01:09:49.424Z (13 days ago)
- Language: TypeScript
- Size: 398 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ghosted v2 (`ghosted-web`)
> Ghosted turns the silence of your job search into data and next actions.
> **Silence, measured.**
A hosted, test-first rewrite of [ghosted](https://github.com/celloopa/ghosted)
(v1, the terminal experiment). Statuses are a summary of **events**; the
painful states — 👻 ghosted, ⏰ needs follow-up — are computed, never
bookkept.
## Repo map
```
packages/core # the entire product model — pure TS, zero deps, 44 tests
apps/web # Next.js (App Router) — thin UI over core (placeholder until M3)
docs/ # the governing documents:
GHOSTED_V2_PLAN.md # build plan + milestones (the contract)
V3_LOCAL_AGENT_PLAN.md # local apply-agent slice + model-class decision
MODEL_CATALOG_AND_COSTS.md # model refresh, pricing, and generation telemetry
DESIGN_DOC.md # the why-it-feels-this-way doc
DECISION_INTERVIEW.md # all design decisions, answered, with rationale
STARTING_BRIEF.md # one-page synthesis — read this first
TOKENS.md # token starter table (dark+light, AA-checked)
COMPONENT_BRIEF.md # the 4 components to build before any screen
M3_CHECKLIST.md # UI build order
TDD_RECEIPT.md # red run → green run, captured
```
## Develop
```bash
pnpm install
pnpm test # 44 unit tests, ~12ms
pnpm typecheck
pnpm dev # placeholder page proving core wiring + tokens
```
## Working agreement (the TDD contract)
1. Pick one behavior from the plan.
2. Write the failing test(s) — names mirror acceptance criteria.
3. Implement minimum to pass. Refactor. Commit test + code together.
4. Never write UI before the core function it renders is tested.
## Status
- [x] Scaffold: pnpm monorepo, Vitest, CI
- [x] M1 core domain (test-first: transition, isGhosted, needsFollowUp, computeStats, parseV1Import, deriveSource)
- [ ] M2 Supabase: magic-link auth, RLS tested before first insert, seeded samples
- [ ] M3 tracker UI (see docs/M3_CHECKLIST.md)
- [ ] M4 stats screen (renders `computeStats` output verbatim)