agent-skills/skill-project-create/SKILL.md
Bootstrap a brand-new Hasna repo project or work project with the current `projects create`/`start` workflow, register todos/conversations, create the project's conversations channel, and preserve the intended category and naming convention.
npx skillsauth add hasna/skills skill-project-createInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a new project end to end: folder, Projects registry row, todos tracking, the project conversations channel, and launch session. First classify it as a repo project or work project.
Repo projects are code repositories/apps such as open-*, platform repos, and
internal apps. Work projects are business/research/operations folders under
.../project/<project-name>.
For new work projects, follow the user's requested name and the local root
convention. Existing work folders may already use project-*; do not rename or
collapse those names during import. For new repo projects, use the repo's naming
convention, such as open-<name> for Hasna OSS apps.
The project channel is named after the slug (flat repo name for repo projects).
Channel class for the topic line: package for open-* and other repo/package
projects, product for platform-*/iapp-*/cweb-*/community-*, and
initiative for work projects (oss-*/internal-*/research-*) — initiative
topics must carry owner:<agent> until:<date|gate-id>. When the installed
conversations CLI supports --class on channel create (newer than 0.3.3),
pass --class <package|product|initiative> as well so the class lands in
metadata.channel_schema.class; the topic line stays either way.
export HASNA_PROJECTS_DB_PATH="$HOME/.hasna/projects/projects.db"
export HASNA_PROJECTS_HOME="$HOME/.hasna/projects"
projects roots list --json
mkdir -p "<path>"
projects create \
--name "<Name>" \
--slug "<slug>" \
--path "<path>" \
--kind "<project|open-source|internal-app|platform>" \
--description "<description>" \
--tmux
todos projects --add "<path>" --name "<slug>"
# Every project has a conversations channel — create it if missing, then join.
# "Already exists" is fine; join and continue.
conversations channel create "<slug>" \
--description "<description>" \
--topic "class:<package|product|initiative> owner:<agent>" \
--from <agent>
conversations channel join "<slug>" --from <agent>
conversations send "project created: <slug> — <description>" \
--channel "<slug>" --from <agent>
projects show "<slug>" --json
projects status "<slug>" --json
projects context "<slug>" --for-agent
Use projects publish <slug> only for repo projects and only when the user wants
a GitHub repository now.
The project channel is the project's coordination home from this point on: post there when you claim a task, get blocked, hit a milestone, or finish (max 3 lines: task id, state, next step).
.secrets/.cleanup-create is for rollback of a creation run only; do not use it for
imported rows.projects --help on the
active machine shows store, canvases, and loops.The folder exists, projects show resolves it, projects status reports the
launch state, todos is registered, the project conversations channel exists
with you joined and the creation message posted, and the description and path
are reported.
testing
Merge a GitHub pull request, merge when green, use a merge queue, or decide whether a pull request is mergeable. Use only for explicit merge intent, not ordinary review.
development
Generate premium performance audit reports for web apps, APIs, or SaaS surfaces with metrics, findings, budgets, remediation plans, and manifest metadata.
data-ai
Generate premium customer feedback reports from reviews, support tickets, surveys, call notes, or raw feedback with clusters, sentiment, root causes, roadmap recommendations, evidence, and manifest metadata.
development
Generate high-quality PDF documents from markdown, HTML, or templates