Skip to content
Back to skills

New Project

ASecurity

new project, scaffold project, create project, set up project, build a dashboard, create a shiny app, start a new analysis, create a project for, I want to visualize, set up a project, new shiny, new R script, new tool

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentssqlgit

Works with

  • claude code
  • claude desktop

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add SVerITG/Metis --skill new-project --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of New Project?

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

Security grade badge for New Project
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sveritg-new-project-metis/badge)](https://www.skillsdirectory.com/skills/sveritg-new-project-metis)

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: New Project
description: "new project, scaffold project, create project, set up project, build a dashboard, create a shiny app, start a new analysis, create a project for, I want to visualize, set up a project, new shiny, new R script, new tool"
model: claude-sonnet-4-6
effort: normal
complexity: standard
---

## Purpose

Scaffolds a new project in the Metis RC system from any starting point (idea, data file, conversation, task). Works from Claude Code and Claude Desktop.

## What to do when invoked

**Step 1 — Gather information** (ask all at once, not sequentially):
- Project name (will be slugified)
- Type: `shiny` / `script` / `report` / `tool`
- Domain / research link (e.g., "[your domain]", "my-thesis", "general")
- Data source path (optional — can be added later)

**Step 2 — Create project card:**
Write `04_projects/active/[slug].md` with this frontmatter:

```yaml
---
title: [Project Name]
slug: [slug]
type: [shiny|script|report|tool]
status: active
domain: [domain]
priority: medium
created: [YYYY-MM-DD]
data_paths: []
launchers: []
github: ""
next_step: "[suggested first action]"
---
```

Followed by a brief `## Context` section (1-2 sentences from the user's description).

**Step 3 — Scaffold files:**

For **Shiny app** (`type: shiny`):
```
system/app-py/[slug]/
  app.R               ← minimal page_navbar skeleton
  R/
    helpers.R         ← metis_paths() copy + theme
  data/               ← empty, gitignored
  www/
    styles.css        ← link to metis styles
  launch.R            ← shinyApp(launch.browser=TRUE, port=3839)
```

For **R script** (`type: script`):
```
knowledge/library/code/[slug]/
  main.R              ← boilerplate with common.R source
  README.md           ← purpose, inputs, outputs, run instructions
```

For **report** (`type: report`):
```
outputs/reports/[slug]/
  [slug].Rmd          ← RMarkdown skeleton with YAML header
  data/               ← empty
```

For **tool** (`type: tool`):
```
knowledge/library/code/[slug]/
  main.py or main.R   ← based on description
  README.md
```

**Step 4 — Register in Metis DB:**
```r
# Run in R (or suggest user runs):
con <- DBI::dbConnect(RSQLite::SQLite(), "system/app/data/metis.sqlite")
DBI::dbExecute(con, "INSERT OR IGNORE INTO projects (project_id, title, domain, status, priority, next_step, created_at) VALUES (?,?,?,?,?,?,?)",
  params = list(slug, title, domain, "active", "medium", next_step, format(Sys.time(), "%Y-%m-%d %H:%M:%S")))
DBI::dbDisconnect(con)
```

**Step 5 — Log and return project card:**
Log to `agent_runs` as `new-project`.

Always end with this project card summary:
```
─────────────────────────────────────
Project:   [name]
Type:      [type]
Location:  [path]
Data:      [data path or "none"]
Open with: Rscript [path]/launch.R
Next step: [suggested first action]
─────────────────────────────────────
```

## Edge cases
- User gives a vague name: suggest a slug, confirm before creating files.
- Type is unclear: ask one clarifying question.
- Path already exists: show existing structure, ask to overwrite or use different name.
- No data source: scaffold without data/ population, note it in next_step.
- Shiny app requested with port conflict: suggest port 3840 or 3841 as alternatives.

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.