o9k-new-project

Create a new P-entry (project) in hmem via create_project — handles schema, section setup, and O-entry linking. Use when the user asks to add/register/track a new project ('neues Projekt', 'P-Entry erstellen'), or before any write_memory with prefix='P'.

10 stars

Best use case

o9k-new-project is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Create a new P-entry (project) in hmem via create_project — handles schema, section setup, and O-entry linking. Use when the user asks to add/register/track a new project ('neues Projekt', 'P-Entry erstellen'), or before any write_memory with prefix='P'.

Teams using o9k-new-project should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/o9k-new-project/SKILL.md --create-dirs "https://raw.githubusercontent.com/Bumblebiber/hmem/main/skills/o9k-new-project/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/o9k-new-project/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How o9k-new-project Compares

Feature / Agento9k-new-projectStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Create a new P-entry (project) in hmem via create_project — handles schema, section setup, and O-entry linking. Use when the user asks to add/register/track a new project ('neues Projekt', 'P-Entry erstellen'), or before any write_memory with prefix='P'.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# /o9k-new-project — New Project Entry

Uses the `create_project` tool to set up a complete project with one call.

## Step 1: Does a codebase exist?

Ask:
> "Gibt es bereits eine Codebase? Wenn ja, in welchem Verzeichnis?"

**If yes:** Scan the directory (README, package.json, CLAUDE.md, etc.) to extract
name, tech stack, description, entry points, key modules. Use findings to fill
the create_project parameters and later append Codebase details.

**If no:** All info comes from the user's answers.

## Step 2: Quick questions (one at a time)

Ask these in order. Skip what the codebase scan already answered.

1. **Name** — "Wie soll das Projekt heißen?"
2. **Stack** — "Welche Technologien?"
3. **One-liner** — "Beschreib das Projekt in einem Satz"
4. **Goal** — "Was ist das Hauptziel?"
5. **Who** — "Wer nutzt es?"
6. **Repo** — "Repo-Pfad oder URL?"
7. **Deployment** — "Wie wird es deployed?"

Stop early if the user says "reicht" or "das war's".

## Step 3: Create the project

```
create_project({
  name: "...",
  tech: "...",
  description: "...",
  goal: "...",
  repo: "...",
  audience: "...",
  deployment: "...",
  tags: ["#lang", "#framework"]
})
```

This creates:
- **P00XX** with sections from the configured schema (or 9 R0009 defaults if no schema)
- **O00XX** matching O-entry for session logging (if `createLinkedO: true` in schema, or always when no schema)

## Step 4: Fill in details

If a codebase was scanned, append the findings. The Codebase node (`.2`) follows a strict schema:

### Codebase node structure

- **L3 — Pipeline** (first child): Data flow overview — `entry → moduleA → moduleB → storage`
- **L3 — Modules**: One node per source file. Title = filename, body = purpose + `src/file.ts`
- **L4 — Functions**: Under each module, one node per exported function/class. Title = full TypeScript signature, body = one-line description + `src/file.ts`

```
append_memory(id="P00XX.2", title="Pipeline", body="src/cli.ts → moduleA.ts → DB")
append_memory(id="P00XX.2", title="moduleA.ts", body="Core logic handler. src/moduleA.ts")
append_memory(id="P00XX.2.N", title="doThing(x: string): Promise<boolean>", body="Does the thing. src/moduleA.ts")
```

**L4 is critical.** Without function signatures, every agent must read source files for every task. Fill L4 for all exported functions when creating a new project — dispatch a subagent to extract them if the codebase is large.

- **L5 — Extended Notes** (optional, use selectively): Add under an L4 node only when it adds real value:
  - Usage example: `write("P", { content: "Title\n\nBody", tags: ["#foo"] })`
  - Important caveats: "triggers sync push", "returns null if not found — never throws"
  - Parameter details: field list for complex option types like `ReadOptions`

  Not every function needs L5 — only where the signature alone leaves agents guessing.

```
append_memory(id="P00XX.3", content="Installation: npm install\n\n...")
```

## Step 5: Link related entries

Search for existing entries that relate to this project and add links:

```
read_memory(search="project keywords")
update_memory(id="P00XX", content="...", links=["T0044", "L0095"])
```

Then show the result: `load_project(id="P00XX")`

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.