Skip to content
Back to skills

Guren New App

ASecurity

Scaffold a new Guren application (Bun + Hono + Drizzle + Inertia, Laravel-shaped) in a directory that has no Guren app yet, and hand off to the app's own agent harness. Use when the user wants to start a Guren project, says "new Guren app", "create a Guren project", "scaffold Guren", or asks what Guren is before choosing a stack. For a directory that already has a Guren app, use guren-harness instead.

  • 30 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 23, 2026
developmenttypescriptgobashsqlreactnodeapidatabasefrontendfullstack

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 28, 2026

npx -y skills add gurenjs/guren --skill guren-new-app --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Guren New App?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Guren New App
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gurenjs-guren-new-app/badge)](https://www.skillsdirectory.com/skills/gurenjs-guren-new-app)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: guren-new-app
description: Scaffold a new Guren application (Bun + Hono + Drizzle + Inertia, Laravel-shaped) in a directory that has no Guren app yet, and hand off to the app's own agent harness. Use when the user wants to start a Guren project, says "new Guren app", "create a Guren project", "scaffold Guren", or asks what Guren is before choosing a stack. For a directory that already has a Guren app, use guren-harness instead.
---

# New Guren App

You are helping someone start a Guren application from nothing. This skill
ends where the app's own harness begins — once the app exists, its
`CLAUDE.md` / `AGENTS.md` and rules directory are authoritative, not this
file.

## What Guren is, in one paragraph

Guren is a Laravel-inspired fullstack TypeScript framework on Bun. Hono
handles HTTP, Drizzle is the ORM, Inertia.js + React is the frontend, and
Zod validates input. Expect Laravel's shapes: `app/Http/Controllers/`,
`app/Models/`, `routes/web.ts`, `db/schema.ts`, `resources/js/pages/`.
Controllers extend `Controller` and call `this.validateBody(schema)`,
`this.inertia(pages.posts.Index, props)`, `this.redirect('/posts')`. Models
come from `defineModel(table)`. Routes are `router.get('/posts', [PostController, 'index'])`.

What makes it different for an agent: the framework ships introspection and
integrity commands you can run instead of guessing — `guren context` (project
map + API signature digest), `guren check` (route ↔ controller ↔ page
consistency, doc links, spec freshness), `guren audit` (validation and auth
on mutating routes, raw SQL, secrets), and `guren gate` (every CI stage in one
exit code: codegen, typecheck, lint, check, audit, tests). Those live in the
app's `@guren/cli` dependency, so they exist only once an app does.

## Before you run anything

Confirm there is no Guren app here: no `package.json` with a `@guren/core`
dependency in this directory or a parent. If there is one, stop and use the
`guren-harness` skill instead.

**Do not run `bunx guren …` before the app exists.** The `guren` package on
npm is a placeholder that only prints how to create an app and exits 1; the
real command comes from an app's local `@guren/cli`.

## Scaffold

```bash
bunx create-guren-app <name>
```

Read `bunx create-guren-app --help` for the current options rather than
relying on this file — it is the scaffolder's own contract and it changes
independently of this skill. It will ask about the starter blueprint, the
database, and which AI agents to set the harness up for; answer the last one
with every agent the team uses, so the harness is installed as part of
scaffolding rather than as a forgotten follow-up.

## Check the postcondition, do not assume it

`create-guren-app` exits 0 even when dependency installation fails: it warns,
skips the harness step, and tells you to run `bunx guren agent:init` later.
So after it returns, verify inside the new directory:

1. `node_modules/@guren/cli` exists. If not, run `bun install`.
2. An entry document exists — `CLAUDE.md` or `AGENTS.md`. If not, run
   `bunx guren agent:init --target <agents>` (see `guren-harness`).

Only then is `bunx guren …` safe to run.

## Hand off

From here, work inside the app and follow its harness:

- Read the app's `CLAUDE.md` or `AGENTS.md` first.
- Run `bunx guren context` at session start and read the API signature digest
  at the end of its output before writing code.
- After editing routes, controllers, models, `db/schema.ts`, or pages, run
  `bunx guren check` and fix what it reports.
- When the change is complete, run `bunx guren gate` and fix what it reports
  until it exits 0.

This skill has nothing further to add once the app is scaffolded.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.