Skip to content
Back to skills

Getty Create Software

ASecurity

Use when creating, scaffolding or initializing a new project or module — Perl dist, Node app, Python package, Go binary, or a bare .gitignore.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 4, 2026
ai-agentspythongonodenodejsgit

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add Getty/skills --skill getty-create-software --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Getty Create Software?

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

Security grade badge for Getty Create Software
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/getty-getty-create-software/badge)](https://www.skillsdirectory.com/skills/getty-getty-create-software)

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: getty-create-software
description: "Use when creating, scaffolding or initializing a new project or module — Perl dist, Node app, Python package, Go binary, or a bare .gitignore."
---

# Create Software

Scaffold a new project to Getty's conventions: detect the type, create the
structure, `.gitignore`, and build config, init git. Language-specific depth
lives in dedicated skills — this one routes and covers the common ground.

## Detect the type

| Signal | Type | Action |
|---|---|---|
| `Foo::Bar` / `Foo-Bar` name, or `dist.ini` present | Perl/Dist::Zilla | Load skill `getty-perl-distribution` — it owns the full scaffold |
| `package.json` present or Node named | Node.js | `.gitignore` (nodejs), then `npm init` |
| `pyproject.toml`/`setup.py` present or Python named | Python | `.gitignore` (python), venv, `pyproject.toml` skeleton |
| `go.mod` present or Go named | Go | `.gitignore` (go), `cmd/<name>/main.go`, `go mod init` |
| Unclear | Generic | `.gitignore` (generic) only |

A name that fits two types (`Data::Cache` in a Python context) → ask, never
guess.

## Every project gets

- `.gitignore` from `templates/gitignore/<type>.gitignore` — plus the
  `claude.gitignore` block when the repo will carry a `.claude/` directory.
  Merge into an existing `.gitignore`, never overwrite custom patterns.
- `git init` + first commit (skill `getty-git-commit-style`) — only if not
  already inside a repo.
- A `README.md` stub naming what the thing is (one paragraph beats a
  template essay).
- A committed `LICENSE`. GitHub, Gitea and Forgejo read a project's licence
  from that file alone — a licence field in `package.json`, `pyproject.toml`
  or `dist.ini` leaves the repository page saying nothing. Write the licence's
  own text, filling only the placeholders it defines (MIT's copyright line);
  prose in front of it makes the forge report `NOASSERTION` instead of naming
  the licence. Perl dists generate the file instead — `dzil genlicense`, see
  `getty-perl-distribution`.

## Ask before proceeding when

- The project type is ambiguous.
- An existing `.gitignore` would lose custom patterns.
- Author/license metadata is needed and not derivable (`~/.gitconfig`,
  sibling projects) — never fabricate names, emails, or channels.

## Related

- `getty-perl-distribution` — the complete CPAN scaffold; this skill only
  routes to it.
- `getty-git-usage`, `getty-git-commit-style` — repo and commit conventions
  for the first commit.

Files in this skill

  • SKILL.md2.5 KB
  • templates/gitignore/claude.gitignore532 B
  • templates/gitignore/generic.gitignore172 B
  • templates/gitignore/go.gitignore587 B
  • templates/gitignore/nodejs.gitignore533 B
  • templates/gitignore/perl-dzil.gitignore511 B
  • templates/gitignore/python.gitignore757 B

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…