agentsclimarketplace

Init project doc

Skill jasonChen0604/codebase-to-portfolio/skills/init-project-doc

Turn your entire codebase history into a portfolio-ready tech profile — with any AI coding agent (Claude Code, Codex, Copilot, Cursor).

Install
npx -y skills add jasonChen0604/codebase-to-portfolio --skill init-project-doc

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 29 days oldThe repository was created 29 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Auto-generate a portfolio-ready project doc (CLAUDE.md / AGENTS.md) from a project's directory structure and source code. Triggers when the user provides a project's directory tree or source snippets and asks to "generate a project doc", "initialize this project", "analyze this project", "產出作品集文件", or "初始化這個專案".

SKILL.md

6.3 KB, as published. Nobody here has run it

Init Project Doc Skill

Role

You are a senior software architect and personal-brand consultant. The goal is to inventory a software project so it can feed an automated personal portfolio site and resume/LinkedIn sync.

Trigger

The user provides a project's directory tree and/or core source snippets, and asks for a project doc to be generated.

Execution Steps

Step 0: Read config

Read profile.config.json from the current working directory. If missing, tell the user to copy examples/profile.config.example.json to profile.config.json and fill it in, then stop.

  • doc_filename (default CLAUDE.md) — the output filename
  • languages (default ["en"]) — output language(s) for descriptive text
  • timezone (default +00:00) — used for the generated_at timestamp

Step 1: Read reference files

Read the following files, located in this skill's directory:

  • config.jsonallowed_categories and allowed_statuses lists
  • template.md → output format (with YAML frontmatter) and all {{VARIABLE}} fields

Step 2: Analyze project code

From the user-provided tree structure and source code, identify:

  • Core language & framework (e.g. TypeScript + Next.js, Python + FastAPI)
  • Database / storage layer (e.g. PostgreSQL, Redis, SQLite)
  • Build tools / package manager (e.g. pnpm, Poetry, Gradle)
  • Deployment / cloud services (e.g. Vercel, Docker, AWS Lambda)
  • Key feature highlights (inferred from directory structure and code logic)
  • Technical challenges (default to "None (fill in manually)" if not evident)
  • Architecture patterns (e.g. MVC, Repository Pattern, Event-Driven)
  • State management (e.g. Zustand, Redux, Context API, none)
  • Auth / authorization mechanism (e.g. NextAuth, JWT, OAuth, none)

Step 3: Apply constraints

  • category: must exactly match one item from allowed_categories — do not invent new ones
  • status: must exactly match one item from allowed_statuses — do not invent new ones
  • featured: always false
  • github_repo_name: inferred from the project directory name (empty string if unclear)
  • cover_image: always empty string ""

Step 4: Fill in the template

Replace all {{VARIABLE}} placeholders in template.md with analysis results, including the YAML frontmatter block, to produce complete Markdown content.

  • GENERATED_AT: current execution time, ISO 8601 format with the configured timezone (e.g. 2026-06-16T14:30:00+00:00)

Step 5: Write the doc file

Use the Write tool to write the generated content into <doc_filename> in the current working directory:

  • If the file doesn't exist: create it
  • If the file already exists: overwrite completely (do not preserve old content)
  • After writing, print one confirmation line: ✅ <doc_filename> written: <absolute path>

Output Rules

  • Write to file, do not print the full Markdown content in the conversation
  • After writing, print only the one confirmation line — no other explanation
  • Keep technical terms in English (e.g. React, WebSocket, REST API)
  • Write descriptive text in the configured output language(s)

Field Guide

YAML Frontmatter Fields

VariableGuidance
PROJECT_NAMEProject directory name, or name from package.json
CATEGORYClosest match from allowed_categories
STATUSClosest match from allowed_statuses (default Completed if unclear)
TAGSDouble-quoted, comma-separated tech tags, e.g. "React", "TypeScript", "Tailwind"
GITHUB_REPO_NAMEInferred from directory name; empty string if unclear
ONE_LINE_DESCRIPTIONOne sentence describing what the project does and what problem it solves
CORE_TECHPrimary language + framework, e.g. TypeScript / Next.js 14
DATABASEDatabase or storage solution; None if not applicable
BUILD_TOOLSBuild tools & package manager, e.g. pnpm / Vite
DEPLOYMENTDeployment platform; None (fill in manually) if unclear
GENERATED_ATISO 8601 timestamp at execution time, e.g. 2026-06-16T14:30:00+00:00

Portfolio Summary Fields

VariableGuidance
SKILL_DEMONSTRATIONTechnical abilities this project demonstrates, first-person, focused on depth and breadth
PROJECT_BACKGROUNDProject background & motivation, first-person, explaining why it was built

Architecture & Conventions Fields

VariableGuidance
DEV_COMMANDSCommon dev commands (install / dev / build / test), inferred from package.json or README
FRAMEWORK_AND_VERSIONMain framework & version, e.g. Next.js 14 (App Router)
ARCH_CONTRACTSDirectory structure and module responsibilities, as a bullet list describing core folder design contracts
STATE_MANAGEMENTState management approach; None if not applicable
AUTH_FLOWAuth / authorization mechanism; None if not applicable
LINT_TOOLSESLint / Prettier / Ruff etc.; None if not applicable
GIT_COMMIT_RULESConventional Commits or other convention; None (fill in manually) if unclear
TESTING_RULESTest framework & conventions; None if not applicable

Features & Highlights Fields

VariableGuidance
FEATURE_TITLE_1 / FEATURE_DESC_11st most representative feature — title & description
FEATURE_TITLE_2 / FEATURE_DESC_22nd most representative feature — title & description
FEATURE_TITLE_3 / FEATURE_DESC_33rd most representative feature — title & description
METRIC_DECRIPTIONPerformance figures or scale metrics; None (fill in manually) if not applicable
CHALLENGE_DESCThe primary technical challenge; None (fill in manually) if not evident
SOLUTION_DESCThe corresponding solution; None (fill in manually) if not evident
DEPENDENCIES_LISTKey dependencies as a bullet list, e.g. - next: ^14.0.0, - prisma: ^5.0.0

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.