Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Wiki Init

ASecurity

Initialize a new project wiki vault with WIKI.md, index, conventions, sync config, and starter structure.

2 stars
0 votes
0 copies
0 views
Added 9/23/2026
ai-agentstypescriptpythongojavarubyphpbashangularnodeexpress

Works with

vscodeapi

Security Analysis

A100/100

Scanned 9/23/2026

Install to Claude Code

$npx -y skills add juanitourquiza/shipframe --skill wiki-init --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wiki Init?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Wiki Init
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/juanitourquiza-wiki-init/badge)](https://www.skillsdirectory.com/skills/juanitourquiza-wiki-init)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: wiki-init
description: Initialize a new project wiki vault with WIKI.md, index, conventions, sync config, and starter structure.
allowed-tools: Read Glob Write Edit Bash AskUserQuestion
effort: high
---

# wiki-init

Sets up a complete LLM wiki vault for any project.

When this skill finishes, the vault has:
- Folder structure adapted to the domain
- `CLAUDE.md` with the project architecture
- `.claude/wiki-conventions.md` with the chosen language and domain-specific tags
- `wiki/sync-config.md` so `/wiki-sync` knows which repos to watch
- `wiki/index.md` and `wiki/log.md` ready to receive pages
- First documentation generated by wiki-forge (optional)

---

## Step 1 — Check initial state

Scan the current directory:

```bash
ls -la
```

If `CLAUDE.md` or `wiki/` already exist (beyond what the framework ships), warn the user:
> "This directory already has wiki files. The skill will create what's missing but won't overwrite existing content."

---

## Step 2 — Project basics

Use `AskUserQuestion` with these 4 questions in a single call:

- **"What is the name of this project / vault?"**
  Header: "Vault name" — user types in "Other"

- **"What language should all wiki pages be written in?"**
  Header: "Wiki language"
  Options: English, Español, Português, Other

- **"What type of project is this?"**
  Header: "Project type"
  Options: SaaS / web app, API / backend, Mobile app, Notes / knowledge base

- **"How many source code repositories does the project have?"**
  Header: "Source repos"
  Options: None (documents only), 1, 2, Three or more

Store answers as `VAULT_NAME`, `LANGUAGE`, `PROJECT_TYPE`, `REPO_COUNT`.

---

## Step 3 — Repository details

**If `REPO_COUNT` is "None":** skip to Step 4 with `REPOS = []`.

**If there are repos:** use `AskUserQuestion` with 2 questions:

- **"List each repository, one per line. Format: `name | relative-path | stack`. Example: `api | ../my-api | Laravel 11`"**
  Header: "Repositories"
  User types in "Other" with as many lines as needed.

- **"Do you have documents, transcripts, or notes to ingest right now?"**
  Header: "Initial sources"
  Options:
  - "Yes — they're in a folder I'll specify"
  - "Yes — I already put them in raw/"
  - "No — start with an empty vault"

Parse the repo answer line by line. For each line `name | path | stack`,
create an object `{ name, path, stack }`. Store as `REPOS`.

Store the sources answer as `HAS_SOURCES`.

---

## Step 4 — Derive categories and domain tags

Based on `PROJECT_TYPE` and `VAULT_NAME`, generate:

### Wiki categories (subdirectories of `wiki/`)

| Project type | Suggested categories |
|-------------|---------------------|
| SaaS / web app | `architecture/`, `modules/`, `entities/`, `flows/`, `integrations/`, `configuration/` |
| API / backend | `architecture/`, `endpoints/`, `models/`, `integrations/`, `configuration/` |
| Mobile app | `architecture/`, `screens/`, `entities/`, `flows/`, `integrations/` |
| Notes / knowledge | Infer from vault name (courses → `concepts/`, `techniques/`, `resources/`; company → `processes/`, `team/`, `projects/`) |

### Domain area tags

Derive 8-12 business tags based on `VAULT_NAME` and `PROJECT_TYPE`.
Think about the core entities and processes of the project. Examples:

- E-commerce → `products`, `orders`, `payments`, `users`, `inventory`, `shipping`
- EdTech → `courses`, `students`, `instructors`, `payments`, `certificates`, `content`
- Fintech → `transactions`, `accounts`, `users`, `compliance`, `notifications`, `reports`
- Generic SaaS → infer from the project name

Present the derived categories and tags to the user:

```
Based on your project, I'll create these wiki sections:
  [list of categories]

And these domain area tags:
  [list of tags]

Do these look right, or would you like to adjust anything?
```

Use `AskUserQuestion`:
- Question: "Do the categories and domain tags look right?"
- Header: "Structure"
- Options: "Yes, looks good", "Adjust categories", "Adjust tags", "Adjust both"

If adjustment needed, ask a free-text follow-up and apply the changes.

Store the final result as `CATEGORIES` (list of strings) and `DOMAIN_TAGS` (list of strings).

---

## Step 5 — Create the vault structure

### 5.1 — Folders

```bash
mkdir -p wiki/sources wiki/logs raw local
```

For each category in `CATEGORIES`:
```bash
mkdir -p wiki/[category]
```

For each repo in `REPOS`:
```bash
mkdir -p raw/[repo.name]
```

---

### 5.2 — CLAUDE.md

If `CLAUDE.md` already exists with project content (not the framework's default), skip this step.

Read `templates/wiki/wiki-md-template.md` and replace:

- `{{VAULT_NAME}}` → `VAULT_NAME`
- `{{PROJECT_DESCRIPTION}}` → 1-2 sentence description inferred from project type and name, written in `LANGUAGE`
- `{{LANGUAGE}}` → `LANGUAGE`
- `{{WIKI_CATEGORIES}}` → list of categories with a one-line description each, in `LANGUAGE`:
  ```
    architecture/    → Technical patterns and design decisions
    modules/         → Per-module documentation
    ...
  ```
- `{{RAW_STRUCTURE}}` → for each repo: `  raw/[name]/  → Source: [path] ([stack])`
- `{{SOURCES_DESCRIPTION}}` → markdown table with repos:
  ```
  | Repo | Relative path | Technology |
  | ---- | ------------- | ---------- |
  | [name] | [path] | [stack] |
  ```
  If no repos: a sentence in `LANGUAGE` describing the vault's content source.

Write all prose in `LANGUAGE`. Write the result to `CLAUDE.md`.

---

### 5.3 — wiki-conventions.md

If `.claude/wiki-conventions.md` already exists, skip this step.

Read `.claude/skills/wiki-forge/references/conventions-template.md` and replace:
- `{{VAULT_NAME}}` → `VAULT_NAME`
- `{{LANGUAGE}}` → `LANGUAGE`

Then append the tags section at the end of the file, writing all labels and descriptions in `LANGUAGE`:

```markdown
## Tag vocabulary

Tags are the most direct retrieval signal. **Only use tags from this list.**
Never invent tags without updating this section first.

Each page carries exactly **1 category tag** + **0-3 area tags** + **0-1 role tag**.

### Category tags (required, exactly 1)

| Tag | When to use |
|-----|-------------|
[One row per category in CATEGORIES — descriptions in LANGUAGE]
| `[category]` | [one-line description] |

### Domain area tags (0-3, only those that apply)

| Tag | Covers |
|-----|--------|
[One row per tag in DOMAIN_TAGS — descriptions in LANGUAGE]
| `[tag]` | [one-line description] |

### Technical role tags (0-1, only if applicable)

| Tag | When to use |
|-----|-------------|
| `core` | Central to the business; high expected query frequency |
| `pattern` | Documents a reusable design pattern |
| `contract` | Defines an interface or agreement between layers |
| `setup` | Configuration or initialization instructions |

### Prohibitions

- **Never** use synonyms of existing tags.
- If a tag seems necessary but isn't in the list: add it here first, then use it.
```

Write the result to `.claude/wiki-conventions.md`.

---

### 5.4 — wiki/sync-config.md

Create `wiki/sync-config.md`. Write all labels in `LANGUAGE`.

**If `REPOS` has repos:**

```markdown
# Wiki Sync — Repository Configuration

Read automatically by `/wiki-sync` at the start of each sync.
Edit this file to add, remove, or modify source repos.

---

## Repositories

| Name | Relative path | Stack |
|------|---------------|-------|
[One row per repo in REPOS]
| [name] | [path] | [stack] |

---

## Patterns with wiki impact

[For each repo, generate patterns based on its stack:]

### [repo-name] ([stack])

[Laravel / PHP]
- `app/Models/*.php`
- `app/Services/*.php`
- `app/Http/Controllers/*.php`
- `routes/api.php`
- `database/migrations/*.php`
- `composer.json`

[Angular / TypeScript]
- `src/app/**/*.ts`
- `package.json`

[Node / Express / NestJS]
- `src/**/*.ts`
- `routes/**/*.ts`
- `models/**/*.ts`
- `package.json`

[Django / Python]
- `**/models.py`
- `**/views.py`
- `**/serializers.py`
- `**/urls.py`
- `requirements.txt`

[Rails / Ruby]
- `app/models/**/*.rb`
- `app/controllers/**/*.rb`
- `config/routes.rb`
- `Gemfile`

[Go]
- `**/*.go` (exclude `*_test.go`)
- `go.mod`

[Unknown stack — use generic patterns]
- `src/**/*.{ts,js,py,php,rb,go,java}`
- `README.md`

---

## Patterns without wiki impact

- Tests: `tests/`, `*.spec.ts`, `*.test.ts`, `*_test.go`, `*Test.php`
- Assets: `*.svg`, `*.png`, `*.jpg`, `*.gif`, `*.ico`
- Lock files: `*.lock`, `package-lock.json`, `composer.lock`
- Build output: `dist/`, `build/`, `.next/`, `vendor/`, `node_modules/`
- IDE: `.vscode/`, `.idea/`, `*.iml`
- Translations: `lang/`, `i18n/`, `locales/`
```

**If `REPOS = []`:**

```markdown
# Wiki Sync — Repository Configuration

This vault has no associated source repositories.
Content comes from documents placed in `raw/`.

To add repos in the future: add rows to the Repositories table
and define their wiki impact patterns.

---

## Repositories

(none)
```

---

### 5.5 — wiki/index.md

Write in `LANGUAGE`:

```markdown
# Index — [VAULT_NAME]

Master catalog of all wiki pages.
Mandatory entry point for any query with `/wiki-query`.

---

[One section per category in CATEGORIES:]

## [Category]

| Page | Summary | Answers |
| ---- | ------- | ------- |
| *(empty — filled by `/wiki-forge`)* | | |
```

---

### 5.6 — wiki/log.md

Write in `LANGUAGE`:

```markdown
# Operation Log — [VAULT_NAME]

History of ingest, lint, and sync operations.
Updated automatically by `/wiki-forge` and `/wiki-sync`.

---
```

---

### 5.7 — README in raw/[repo]

For each repo in `REPOS`, create `raw/[repo.name]/README.md`:

```markdown
# [repo.name]

Source repository: `[repo.path]`
Stack: `[repo.stack]`

Files in this directory are immutable sources.
Do not modify directly — use `/wiki-forge` to ingest them.
```

---

### 5.8 — WIKI.md

Create `WIKI.md` at the project root. This file is the initialization marker read by the
orchestrator at startup and the entry point for any agent that needs wiki instructions.

Write in `LANGUAGE`:

```markdown
# Wiki — [VAULT_NAME]

This project has a knowledge wiki in `wiki/`.
Consult it before investigating the codebase.

## How to use

- **Query**: use `/wiki-query` or ask about any component, module, or pattern.
- **Sync**: use `/wiki-sync` to bring the wiki up to date with recent commits.
- **Ingest**: use `/wiki-forge` to process new documents placed in `raw/`.

## Entry point

`wiki/index.md` — master catalog of all documented pages, organized by category.
```

---

### 5.9 — CLAUDE.md wiki section

Ensure the project's `CLAUDE.md` instructs agents to always consult the wiki before
reading source code.

**If `CLAUDE.md` does not exist:** create it with the following content (in `LANGUAGE`):

```markdown
# [VAULT_NAME]

## Wiki

This project has a documented knowledge wiki. Before investigating the codebase for
any architecture, module, pattern, or domain question, **always read `WIKI.md` first**
and use `/wiki-query` to find documented information.
Do not grep the codebase for facts that may already be in the wiki.

- Entry point: `WIKI.md`
- Full catalog: `wiki/index.md`
```

**If `CLAUDE.md` already exists:** check whether it contains a `## Wiki` section.
- If **not present**: append the following block at the end of the file (in `LANGUAGE`):

  ```markdown
  ## Wiki

  This project has a documented knowledge wiki. Before investigating the codebase for
  any architecture, module, pattern, or domain question, **always read `WIKI.md` first**
  and use `/wiki-query` to find documented information.
  Do not grep the codebase for facts that may already be in the wiki.

  - Entry point: `WIKI.md`
  - Full catalog: `wiki/index.md`
  ```

- If **already present**: skip — do not duplicate.

---

## Step 6 — Report and launch forge

Report to the user:

```
## Vault initialized: [VAULT_NAME]

Language: [LANGUAGE]
Type: [PROJECT_TYPE]
Repos configured: [list or "none"]

Files created:
  WIKI.md
  CLAUDE.md
  .claude/wiki-conventions.md
  wiki/sync-config.md
  wiki/index.md
  wiki/log.md
  wiki/[categories]/
  raw/[repos]/

Ready. The skills /wiki-forge, /wiki-sync and /wiki-query
are configured for this project.
```

Then ask:

- Question: "Do you want to run the initial ingest now to generate the first documentation?"
- Header: "Initial ingest"
- Options:
  - "Yes — ingest the source repos now"
  - "Yes — I have documents in raw/ to ingest"
  - "No — I'll run /wiki-forge manually later"

**If they choose to ingest:** run the INGEST (batch) operation of the `wiki-forge` skill pointing at `raw/`.

**If they choose not to:** finish with the message:
> "Vault ready. When you want to create the initial documentation, run `/wiki-forge`."

Attribution

juanitourquizajuanitourquiza
View sourceMore from juanitourquiza →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1066601 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

651 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →