5 · Rules & skills
Objective — seed .claude/rules/ with the universal behavioral + reference rule set, install the stack skills and deploy orchestrator into .claude/skills/, then restart so the new context loads. This is the accumulated-knowledge layer — hard-won lessons from past CodeCanyon deployments that arm every future session.
Background
Section titled “Background”Rules and skills are the accumulated knowledge layer — hard-won lessons from past CodeCanyon deployments that arm every future session (and every teammate who pulls the repo) so you don’t re-hit known bugs from scratch.
| Layer | Location | What it is | Loaded |
|---|---|---|---|
| Rules | .claude/rules/*.md | Behavioral (feedback_*) + reference (reference_*) + project (project_*) knowledge | In full, at session start |
| Skills | .claude/skills/ | Reusable procedures the agent invokes on demand (e.g. the deploy orchestrator) | On invocation |
Both are committed at C5 (orchestrator already at C2) so they travel with the repo — see git policy.
flowchart TD Boot[Agent session start] --> Rules[".claude/rules/<br/>loaded in full"] Boot --> Skills[".claude/skills/<br/>invoked on demand"] Rules --> Guard[Behavior + reference + project context] Skills --> Proc[Procedures e.g. deploy orchestrator]1. Seed .claude/rules/
Section titled “1. Seed .claude/rules/”The kit ships the full universal rule set plus a seed-project-rules.sh that copies them into .claude/rules/, backs up any existing versions, and writes a human-readable index. It’s safe to re-run anytime the rule set is updated; it never touches your project_*.md files.
-
Run the seed script from the project root.
Terminal window bash .claude/rules/seed-project-rules.sh # idempotent — only adds/updates by mtime# Expected: rules copied/updated; existing project_*.md files left untouched- ✅
.claude/rules/fills with thefeedback_*+reference_*set and a human-readable index.
- ✅
-
Add a project-specific context file. The universal rules are universal; add one file for this project’s current state. Save it as
.claude/rules/project_context.md— this file is yours, and seed re-runs never overwriteproject_*files.---name: Project context — <AppName>description: High-level context every session should load. Update as the project progresses.---## <AppName>- Type: <SaaS / marketplace / directory>- Vendor family: <Froiden / LiquidThemes / WorkDo / InfyOm / IqonicDesign / other>- Tech stack: Laravel <version>, <notes>- Staging: staging.<domain> Production: <domain>- Current phase: AI System setup (complete — update as you go)## Known vendor gotchas (fill in after the local dev source scan)- APP_ENV hardcoding: <not yet scanned>- ✅
.claude/rules/project_context.mdexists with this project’s type, vendor family, stack, and environments.
- ✅
What gets seeded (grouped for discoverability)
Section titled “What gets seeded (grouped for discoverability)”Meta — how to work with the system itself
feedback_rule_persistence.md— when to write a rule directly vs propose-first; keep rules small, grouped, cross-referencedfeedback_guide_updates_proactive.md— apply guide edits directly when root cause is clearfeedback_guide_hiccup_logging.md— log guide gaps / vendor quirks to a hiccups log instead of silent inline fixesfeedback_commit_split_strategy.md— the rules→deviations→content→docs commit patternfeedback_idempotent_replay_scripts.md·feedback_replay_script_persistence.md— recoverable, persisted bulk-write scripts
CodeCanyon vendor handling
feedback_product_naming.md— use your project names, never vendor script namesfeedback_vendor_assumptions_verify.md— installed ≠ canonically used; grep source firstfeedback_vendor_ui_first.md·feedback_vendor_ui_warnings.md— prefer vendor UI/code paths; treat UI warnings as hypothesesfeedback_observer_reseed_trap.md— vendor observers silently re-materialize defaults; checkapp/Observers/firstfeedback_demo_content_replacement.md— replace vendor demo content (fake testimonials are a legal landmine)feedback_tier_gating_model.md— discover the vendor’s gating model before designing tiersreference_codecanyon_vendor_families.md— known gotchas by vendor familyreference_vendor_deviation_pattern.md— the safe 3-file deviation pattern with comment markers
Customization-ownership system
feedback_zaj_code_markers.md— wrap edits inZAJ:BEGIN/END; net-new files getZAJ:FILEfeedback_zaj_table_naming.md— table/migration naming conventionsreference_zaj_customization_strategy.md— the vendor-customization vs new-module vs table-extension decision tree
Laravel / PHP
feedback_blade_short_php_form.md·feedback_env_hardcoding_scan.md·feedback_php_alt_binary_artisan.mdreference_laravel_execution_patterns.md— when to use tinker vs script vs artisan vs seeder vs migration
Deploy / infra
feedback_shared_files_add_not_set.md·feedback_cron_every_minute_gotcha.md·feedback_staging_vs_production_execution.md
Security / secrets
feedback_secret_handling.md·feedback_server_side_secret_execution.md·feedback_op_signin_interactive.md·feedback_stripe_agent_safety.mdreference_stripe_restricted_key_scopes.md
i18n / content
feedback_free_translate_polysemy.md— spot-check machine translations for polysemy before shipping
2. Install skills into .claude/skills/
Section titled “2. Install skills into .claude/skills/”The zaj-laravel-codecanyon orchestrator should already be in the project from C2 (machine setup §5). This step adds stack skills (Stripe, etc.) — skip re-downloading the orchestrator unless C2 was skipped.
-
Confirm the orchestrator from C2 (or download if missing).
Terminal window test -d .claude/skills/zaj-laravel-codecanyon/handbook \&& echo "orchestrator present (C2)" \|| { mkdir -p .claude/skills/zaj-laravel-codecanyoncurl -fsSL https://library.zajapps.com/skills/zaj-laravel-codecanyon.tgz \| tar -xz -C .claude/skills/zaj-laravel-codecanyon; }# Expected: handbook/ + SKILL.md present- ✅
.claude/skills/zaj-laravel-codecanyon/handbook/exists or you deliberately use a global~/.claude/skills/zaj-laravel-codecanyoncopy only.
- ✅
-
Add stack skills (Stripe example — install only if this project uses Stripe).
Terminal window npx skills add stripe # example — installs the Stripe skill into .claude/skills/ls .claude/skills/# Expected: orchestrator + any stack skills you chose- ✅
ls .claude/skills/lists the orchestrator (downloaded into the project) and any stack/Stripe skills.
- ✅
-
If you built by hand, copy only the rules bundle.
If you already wrote
AGENTS.md,.claude/settings.json, and project mirrors by hand, do not run the kit’s fullseed.shhere. Use the kit as a source tree and copy the rule files deliberately so you do not overwrite hand-built project policy.Terminal window KIT_DIR="Admin-Local/0-Setup/codecanyon-ai-system-kit"mkdir -p .claude/rulescp -R "$KIT_DIR/dot-claude/rules/." .claude/rules/# Expected: only .claude/rules/ is copied from the kit in this hand-built path- ✅ Hand-built constitution/settings files remain untouched;
.claude/rules/carries the CodeCanyon feedback rules.
- ✅ Hand-built constitution/settings files remain untouched;
-
Verify on disk — commit at C5 (§3 below).
Terminal window git add -n .claude/rules/ .claude/skills/ .claude/agents/# Expected: paths listed (dry-run) — commit in §3 below- ✅
.claude/rules/+ stack skills are in place..claude/agents/is present only if you created real reviewer files, not just placeholders.
- ✅
Decide whether to create review subagents (.claude/agents/)
Section titled “Decide whether to create review subagents (.claude/agents/)”Skills are procedures the agent runs; subagents are specialist reviewers you dispatch for a focused second opinion. The kit ships three CodeCanyon-specific ones into .claude/agents/ — they travel with the repo after C5:
vendor-update-reviewer— checks a change for CodeCanyon vendor-upgrade safety (the_zajsuffix,ZAJ:BEGIN/ENDmarkers, no edits to vendor migrations). Run it before any commit that touches vendor territory.security-reviewer— security review tuned for a multi-tenant Workdo/Dash Laravel SaaS (tenant isolation, mass-assignment, auth/permission gaps). Run it in Phase 7 and before production.flow-auditor— audits one user flow end-to-end for production-readiness (full-stack, not just the happy path). Run it in Phase 10.
If the kit you downloaded contains only .claude/agents/README.md placeholders, treat these reviewers as optional/create-as-needed, not as files that already exist. Either create real agent files from your team’s current agent template before C5, or leave .claude/agents/README.md as a placeholder and record that reviewers will be dispatched from the global agent pool when needed.
They commit alongside .claude/skills/ (stack skills) and .claude/rules/ at C5 only when real files exist, so they load for every teammate on clone.
3. Commit rules + skills (C5)
Section titled “3. Commit rules + skills (C5)”-
Stage and commit C5 from the project root.
Terminal window git branch --show-current # must be developgit add .claude/rules .claude/skills .claude/agentsgit commit -m "feat(ai): seed rules + install stack skills"git log --oneline -5 # C5 atop C4…C1# Expected: C5 on develop; zaj-laravel-codecanyon unchanged from C2 unless you added stack skills beside it- ✅
git logshows C5;.claude/rules/and stack skills are tracked. Review subagents are tracked only if you created real reviewer files; placeholders alone are not a done signal.
- ✅
4. Restart — this is not optional
Section titled “4. Restart — this is not optional”.claude/rules/ and .claude/skills/ load once at session start and are not re-scanned mid-session. If you seed without restarting, the current session keeps running with the old/empty context and the new rules have zero effect.
Why it matters: if you run a Stripe-key step in a session that never loaded feedback_stripe_agent_safety.md, the agent may accept an unrestricted key or skip the human-gate.
-
Save work — or
/compactto preserve context, but note a reload still needs a new session.- ✅ Pending work is saved (or context compacted) before exiting.
-
End the session and start fresh.
1. Save work (or /compact to preserve context — but reload still needs a NEW session)2. End the session (/exit or Ctrl+D)3. Start fresh: claude4. Verify: ask "What rules do you have loaded in .claude/rules/?"- ✅ A fresh
claudesession is running.
- ✅ A fresh
-
Verify the rules loaded. Ask the new session what rules it has.
Ask: "What rules do you have loaded in .claude/rules/?"# Expected: it lists the feedback_* + reference_* set plus project_context.md- ✅ The session lists the
feedback_*+reference_*set plusproject_context.md.
- ✅ The session lists the
Checklist
Section titled “Checklist”Do not mark this step done until every box below is checked.
- 🤖 Rules seeded —
bash .claude/rules/seed-project-rules.shran;.claude/rules/holds thefeedback_*+reference_*set. - 🤖 Project context added —
.claude/rules/project_context.mdexists with this project’s type, vendor family, stack, and environments. - 🤖 Skills installed —
.claude/skills/zaj-laravel-codecanyon/handbook/(per-project download) or global~/.claude/skills/zaj-laravel-codecanyon/handbook/; plus any stack/Stripe skills. - 🤖 Review subagent plan recorded — either
.claude/agents/holds real vendor-update / security / flow-auditor reviewer files, or the placeholders explicitly say the project will dispatch global reviewers as needed. - 🤖 Tracking files seeded —
_CUSTOMIZATIONS.md,guide-hiccups-log.md, andtask-ledger.mdexist at the repo root /Admin-Local/(later phases write to them). - 🤖 C5 committed on develop —
.claude/rules/, stack skills, and.claude/agents/tracked (git logshows C5); orchestrator already from C2. - 👤 Session restarted — a fresh session was started after seeding.
- 🔀 Rules confirmed loaded — the fresh session lists the
feedback_*+reference_*set plusproject_context.md.