Your code.
Your context.
Less guesswork.
Give your AI assistant a clear picture of your codebase. Turn a GitHub repo into focused context—schemas, routes, and types included.
# Your repo, distilled.
Table Project (
id: String [PK],
name: String,
ownerId: String
)
GET /api/projects/[id]
→ ProjectWithTasks
interface Project {
id: string;
name: string;
}
YOUR ACTUAL STACK
Your code moved on.
Did your AI?
A new schema. A renamed endpoint. One more type to remember. Your assistant can’t follow the rules it doesn’t know.
RepoSpec turns the contracts that matter into a reference you can actually keep current.
Bring it back to the sourceproject.owner?A field that looks right.
But doesn’t exist in the model.
project.ownerIdThe field your code
actually defines.
A lot happens.
Only the useful bits stay.
From a repository full of implementation
to a reference your next prompt can use.
Explore each part of the process.
prisma/schema.prisma src/app/api/projects/[id]/route.ts src/types/project.ts .repospec/rules.md
RepoSpec resolves a branch, tag, or commit to a specific GitHub commit. The context starts with that version of your code.
Context with
a sense of proportion.
Keep the schema. Trim the noise.
Spend your context window on the
parts that help your assistant think.
One budget.
Your priorities.
Try the controls. These contracts come from a real, small fixture parsed by RepoSpec.
# RepoSpec context
## Database
Table Project (id: String [PK, NOT NULL], name: String [NOT NULL], ownerId: String [NOT NULL], tasks: Task[])
Table Task (id: String [PK, NOT NULL], title: String [NOT NULL], projectId: String [NOT NULL, FK → Project.id], project: Project [NOT NULL])
## API routes
GET /api/projects/[id] → Params: id → Response: Promise < ProjectWithTasks >
PATCH /api/projects/[id] → Params: id → Body: UpdateProject → Response: Promise < Project >
## Core types
interface Project { id : string ; name : string ; ownerId : string }
interface ProjectWithTasks extends Project { tasks : { id : string ; title : string } [ ] }
type UpdateProject = Pick < Project , "name" > ;
## Architecture rules
- All database access uses the shared database client.
- Client components must not import server data access.
Three steps.
A better starting point.
Start with your repository.
Paste a public GitHub URL, or sign in and choose a repository your GitHub App can access.
Make the context yours.
Inspect extracted contracts, toggle source files, and set a token budget. See exactly what makes the cut.
Put it to work.
Download your context file and add it to your coding workflow. Reanalyze when your code changes.
Good context
travels light.
No new way of working to learn.
Just a clearer reference for the tools you already use.
A reference for any workflow.
A portable Markdown file. Attach it to a prompt, keep it beside your project, or use it as a reference while you work.
Example fixture only. No automatic connection to a coding assistant.
# RepoSpec context
## Database
Table Project (id: String [PK, NOT NULL], name: String [NOT NULL], ownerId: String [NOT NULL], tasks: Task[])
Table Task (id: String [PK, NOT NULL], title: String [NOT NULL], projectId: String [NOT NULL, FK → Project.id], project: Project [NOT NULL])
## API routes
GET /api/projects/[id] → Params: id → Response: Promise < ProjectWithTasks >
PATCH /api/projects/[id] → Params: id → Body: UpdateProject → Response: Promise < Project >
## Core types
interface Project { id : string ; name : string ; ownerId : string }
interface ProjectWithTasks extends Project { tasks : { id : string ; title : string } [ ] }
type UpdateProject = Pick < Project , "name" > ;
## Architecture rules
- All database access uses the shared database client.
- Client components must not import server data access.
Same codebase.
A better conversation.
Bring the relevant contracts into view
before asking an assistant to change them.
Getting into a new repository
Start with the shape of the system.
See the models, endpoints, and exported types together. Give your assistant a concrete reference before planning your first change.
Changing a feature
Keep names and contracts in sync.
Include the schema and route contracts that touch your feature. Ask for changes against the fields your code actually defines.
Picking up where you left off
Refresh the context. Keep going.
Analyze the latest commit and replace your old reference. Context files are snapshots, so reanalyze after relevant code changes.
Know what goes in.
Trust what comes out.
Useful context should be inspectable, traceable, and yours to control.
Selected repos. Read-only.
Choose which repositories the GitHub App can access. RepoSpec doesn’t push commits or change your code.
Extracted, not invented.
Static parsing reads what your code defines. Unsupported patterns show up as notes, instead of confident guesses.
No setup in your codebase.
Analyze in the browser and download Markdown. No repository plugin, database, or package installation required.
A little more context.
What does RepoSpec actually do?
RepoSpec extracts database models, API endpoints, and exported TypeScript types from a GitHub repository. You choose what to include and download a compact context file for your coding assistant.
Can I use a private repository?
Yes, through GitHub sign-in and a GitHub App installation. You select which repositories the app can read. Private access requires the site operator to configure the GitHub App.
Does it write anything to my GitHub repository?
No. Repository access is read-only. Generated files download to your device, and you decide whether to add them to your project.
Which stacks does it understand?
The first version supports TypeScript, Next.js App Router, Prisma, Drizzle, and common Zod object schemas. Unsupported patterns are reported rather than guessed.
Will this stop every AI mistake?
No tool can guarantee that. RepoSpec gives an assistant explicit contracts from a specific commit, helping it reason with better context. You still review and test generated code.
What happens to my source code?
The hosted app parses a bounded snapshot in server memory and returns extracted contracts. It does not run your source code or save the repository in an application database.
Give your next prompt
a better foundation.
Start with a GitHub repoYour source. Your priorities. Your context.