new-files

Enforces repository conventions for opening comments, placement, and regeneration of new files.

4|Updated Dec 1, 2025
One-click install
npx skills add https://github.com/simplyblock/simplyblock-operator --skill new-files-simplyblock
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: new-files
Source: https://github.com/simplyblock/simplyblock-operator/tree/main/.claude/skills/new-files
Command: npx skills add https://github.com/simplyblock/simplyblock-operator --skill new-files-simplyblock

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? New files in a multi-component Go monorepo often arrive with scaffolded license headers, missing opening comments, wrong directory placement, or stale generated artifacts, causing lint failures and CI drift. This Skill codifies the repository's rules so every new file starts correctly. ## Core Features & Use Cases - Header and opening-comment rules: Prohibits license headers, copyright lines, and SPDX identifiers on new files, and requires an opening comment stating what the file contains and why it exists, with per-language mechanics for Go, Python, shell, YAML, Makefile, and Markdown. - Placement and regeneration guidance: Maps each file type (CRD types, reconcilers, atlas-lib primitives, CSI logic, Helm templates) to its correct directory and lists the exact make targets to regenerate manifests, deepcopy code, and Helm chart syncs. - Use Case: When scaffolding a new CRD kind with kubebuilder, use this Skill to strip the injected Apache header, write the opening comment, hand-wire the kustomization and main.go registration, and run make -C operator manifests generate plus make helm-sync before committing. ## Quick Start Use the new-files skill to review the Go file I just created and tell me what to fix before committing it.

Frequently Asked Questions about new-files

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new file to a Go monorepo without breaking CI?

Start the file with an opening comment stating what it contains and why, add no license header, place it in the correct component directory, and regenerate any stale artifacts. Then run the component's lint target and the house-style quality gate before committing.

What should the opening comment of a new Go file say?

It should state what lives in the file in one concrete sentence, why it lives there rather than elsewhere, and any non-obvious constraint such as an invariant or ordering. It must never contain an author, date, ticket number, or a list of the file's symbols.

Should new files include a license header or copyright line?

No. New files carry no license header, copyright line, or SPDX identifier in this repository. Headers injected by kubebuilder scaffolding must be deleted before committing, while headers in generated deepcopy files and the CSI driver entry points are left untouched.

What must be regenerated after adding a new CRD kind?

Run make -C operator manifests generate to produce the CRD and deepcopy methods, then hand-wire the kustomization resources list and reconciler registration in cmd/main.go. Finally run make -C operator build-installer and make helm-sync and commit everything they change.

Where should shared node-level storage code live in this repository?

Shared primitives such as NVMe discovery, NVMe-oF connections, and error classification belong in atlas-lib, public under atlas-lib/<concern>/ or internal under atlas-lib/internal/. Kubernetes-shaped logic like reconcilers and admission stays in the consuming component.