Skip to content

Commit 34ea907

Browse files
author
Travis Holloway
committed
Add instructions file for claude
1 parent bb85cef commit 34ea907

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Claude Code Instructions
2+
3+
## Skills and Agents
4+
5+
At the start of each session, run `git pull` in `/usr/local/webpros-claude-skills/` to
6+
ensure you have the latest skills and agents. That directory contains project-wide
7+
skills (under `skills/`) and agents (under `agents/`) that provide commit message
8+
standards, workflow conventions, and other shared guidance used across WebPros projects.
9+
10+
## Project Overview
11+
12+
This is the **cPanel ELevate** project — a Perl-based tool that performs in-place OS
13+
upgrades for cPanel installations (e.g. CentOS 7 → AlmaLinux 8, Ubuntu 20 → 22, etc.).
14+
It wraps the [Leapp Project](https://leapp.readthedocs.io/en/latest/) for RHEL-based
15+
systems and `do-release-upgrade` for Ubuntu-based systems.
16+
17+
## Language and Runtime
18+
19+
- Written in **Perl**, packed into a single fat-packed script (`elevate-cpanel`).
20+
- Uses cPanel's bundled Perl at `/usr/local/cpanel/3rdparty/perl/536/bin/perl`.
21+
- Library modules live under `lib/Elevate/`.
22+
- The entry point is `script/elevate-cpanel.PL`, which is packed via `maint/perlpkg.static`.
23+
24+
## Building and Testing
25+
26+
- **Build**: `make build` — produces the fat-packed `elevate-cpanel` script.
27+
- **Test**: `make test` — runs `sanity` (syntax check all `.pm` files) then the test suite
28+
via `yath` (with 8 parallel jobs).
29+
- **Full**: `make` — runs build, test, and coverage.
30+
- Tests live in `t/` and use standard Perl testing conventions (`Test::More`, etc.).
31+
- Always run `make test` after making code changes to verify nothing is broken.
32+
33+
## Repository Structure
34+
35+
- `lib/Elevate/` — Perl modules (components, blockers, OS detection, stages, etc.)
36+
- `script/elevate-cpanel.PL` — main script source
37+
- `t/` — test files
38+
- `maint/` — build tooling
39+
- `.github/workflows/` — CI workflows (OpenStack integration tests per OS target)
40+
- `docs-website-src/` — Hugo-based public documentation website source
41+
- `docs/` — built website output (do not edit manually; generated by CI)
42+
43+
## Public Documentation Website
44+
45+
The public docs site at <https://cpanel.github.io/elevate> is built with
46+
[Hugo](https://gohugo.io/) from source in `docs-website-src/`.
47+
48+
- Content lives in `docs-website-src/content/` as Markdown files.
49+
- The site is built and deployed automatically via the `.github/workflows/website.yml`
50+
CD workflow on every push to `main`. Hugo compiles the site into `docs/`, which is
51+
then force-pushed to the `docs` branch by the workflow.
52+
- **Never manually edit files in `docs/`** — they are regenerated on every deploy.
53+
- To update documentation, edit the Markdown files under `docs-website-src/content/`.
54+
- To preview locally: run `hugo -D` from the `docs-website-src/` directory
55+
(requires Hugo v0.91.2).
56+
57+
## Commit Message Format
58+
59+
Commits follow the cPanel/WHM convention:
60+
61+
1. **Subject line**: Short summary (imperative mood, ≤50 chars), no case number.
62+
2. **Blank line**
63+
3. **Body**: Detailed description; **must begin** with `Case PROJECT-XXXXX:` if a ticket/case exists (use the branch name as the case number when on a case branch).
64+
4. **Trailers** (in this order):
65+
- `Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>`
66+
- `Changelog:` — leave empty for internal-only changes; describe user-visible changes otherwise.
67+
68+
`Changelog:` **must always be the last line** of the commit message.

0 commit comments

Comments
 (0)