agentsclimarketplace

Client onboarding

Skill SeayMonster/SkillsOfTheKraken/skills/client-onboarding

One-time setup for a new BlueYonder (JDA Intactix) client repo. Generates client.json, README.md, Setup.ps1, a portal HTML file, ONBOARDING.md, and wires up copilot-instructions.md and CLAUDE.md. Use this skill whenever you are in a BlueYonder client repo and client.json does not exist in the repo root, or when the user asks to set up, onboard, or initialize a client repo for the first time.From its SKILL.md

Install
npx -y skills add SeayMonster/SkillsOfTheKraken --skill client-onboarding

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

13.0 KB, as published. Nobody here has run it

<context> Inspects a BlueYonder client repo and generates all onboarding artifacts so any developer (local Claude Code or SaaS Copilot-only) can clone the repo and be productive immediately.

Run once per repo lifetime. After that, the portal and Copilot handle everything.


New Client Checklist

Before running this skill, gather the following from the client. You will need these to populate env-config.json and configure the SQL MCP connection.

Gather from the client (per environment: Dev / Test / Prod):

WhatUsed for
DB server name (e.g. sql-server\instance)SQL MCP connection, env table
Database nameSQL MCP connection, env table
DB user + passwordSQL auth (if not Windows Integrated)
Citrix server nameRDP / env table
Batch server nameBatch deploy target, env table
Reporting server nameEnv table
VS Citrix server nameDev machine access, env table
OA realm nameOpen Access login
Citrix URLEnv table
Open Access URLEnv table
Deploy type: Local or SaaSPortal deploy selector default

Then in the new repo:

  1. Create a new repo in Visual Studio (or clone an existing client repo).
  2. Run /kraken:client-onboarding — this skill generates everything below.
  3. Populate Environment Details/env-config.json with the server info above, or run .\Setup.ps1 which guides you through it.
  4. Run /kraken:switch-database (or .\Switch-SqlEnv.ps1 Dev) to point the SQL MCP at the client DB.
  5. Restart Claude Code — MCP config only loads at startup.
  6. Verify with /mcp — mssql-server should be listed and connected.

That's it. The portal ([Client].html) and deploy flow are auto-generated by this skill and work the same way across all clients. </context>

<task> ## Steps 1–3: Coordinate (parent — requires user input)

Run Steps 1–3 below before invoking the workflow. Collect project tags and Excel path.

Steps 4–14: Multi-agent workflow

After Coordinate completes, invoke:

Workflow({
  scriptPath: "{SKILL_DIR}/workflow.js",
  args: { repoRoot: "<absolute path to client repo>" }
})

Generate phase (parallel): client.json, README.md, Setup.ps1, portal HTML, ONBOARDING.md — one agent each.

Wire phase (parallel): copilot-instructions append, CLAUDE.md append, .gitignore, CopyWebUI.bat patches, _Portal sln folder.

Finalize: commit reminder, switch-database, MCP verify.

Detailed content for each artifact remains in Steps 4–14 below.


Step 1 — Scan .csproj files

Find all .csproj files in the repo:

Get-ChildItem -Recurse -Filter *.csproj | Select-Object FullName

Present the list to the user and ask them to tag each project:

  • web — deploys to the OA web server via CopyWebUI.bat
  • batch — deploys to the batch/archive server
  • skip — tooling, tests, samples, shared libraries

Common patterns:

  • Projects with a CopyWebUI.bat → likely web
  • Projects named CX_Archive*, CxCkb*ImportExport → likely batch
  • Projects named *Tests*, *Sample*, LegacyAutomation*, *Shared* → likely skip
  • SA Pro script projects (*BRVScript, *SAProScript) → skip (deployed differently)

Step 2 — Detect environment Excel

Look for a .xlsx file in these locations (in order):

  1. Environment Details/ folder
  2. Config/ folder
  3. Repo root

If found, confirm the path with the user. If not found, ask for the location.


Step 3 — Check what already exists

Before generating, check:

  • Switch-SqlEnv.ps1 exists? If not, invoke kraken:env-switcher skill.
  • .github/copilot-instructions.md exists? If not, invoke kraken:setup-copilot skill.
  • client.json exists? If yes, confirm overwrite before proceeding.

Step 4 — Write client.json

Write to repo root. Use the project tags from Step 1 and the Excel path from Step 2.

{
  "projects": [
    { "name": "ProjectName", "path": "relative/path/ProjectName", "target": "web" }
  ],
  "environmentExcel": "Environment Details/filename.xlsx"
}

The path field is the folder containing the .csproj, relative to repo root.


Step 5 — Generate README.md

Write to repo root. Contents:

  • One-paragraph description of what the repo is
  • Quick start: clone → .\Setup.ps1 → open portal → paste into AI
  • Project table (populated from client.json — web and batch projects only, skip the skip ones)
  • Environments section pointing to Switch-SqlEnv.ps1
  • Key files table: CLAUDE.md, copilot-instructions.md, client.json, portal HTML, Switch-SqlEnv.ps1, LegacyAutomationConversion/Skills/

Step 6 — Generate Setup.ps1

Write to repo root. The script must be idempotent (safe to re-run). Steps:

  1. If claude CLI detected → register SkillsOfTheKraken and run plugin install. Skip silently if not present (SaaS — only VS 2022 + Copilot available).
  2. If env-config.json doesn't exist → run Switch-SqlEnv.ps1
  3. Check .gitignore for required entries (env-config.json, build-request.json) — add any missing
  4. Prereq check: ODBC Driver 17 (check registry), msbuild on PATH — warn if missing, don't block
  5. Print summary with next steps

Step 7 — Generate [ClientName].html portal

The portal filename is derived from the repo folder name: take the first segment before any - or _ separator, then title-case it (e.g. academy-BlueYonder → Academy.html, acosta-dev → Acosta.html, clientname → Clientname.html). Write to repo root.

The portal is a single self-contained HTML file (no external dependencies) using the File System Access API. One-time folder permission per browser session. Chrome and Edge only. Use the dark design system defined in global CLAUDE.md (Syne/Outfit/JetBrains Mono, #0b0f14 base, #0591E5 accent). Persist the directory handle in IndexedDB so the folder auto-reconnects on reload.

Tabs: Environments, Projects, History (add UAT if the repo has a playwright.config.js).

Environments tab

Reads Environment Details/env-config.json. Shows server/database/user per environment in a table with copy buttons. Passwords show as •••••••• with a Show/Hide toggle. If file not found, shows instructions to run Switch-SqlEnv.ps1.

Projects tab

Deploy controls row (top of the card):

  • Environment <select> — options are ['local', ...Object.keys(envConfig)]. local is always first and hardcoded — do not read it from env-config.json.
  • Deploy type badge — auto-resolves from env: local → green LOCAL badge; any other env → blue SAAS badge. No separate deploy type dropdown.
  • Rescan button (re-scans for new .csproj files, updates client.json)
  • Package summary span ("2 components selected")
  • Generate Package button — disabled when env is local, enabled when SAAS

Target display (below controls):

  • Web target path (local: C:\Program Files (x86)\JDA\Intactix\Intactix Knowledge Base\Open Access; SaaS: U:\OpenAccess\Customization)
  • Batch target path (read BatchServer from env-config.json for the selected env, format \\{BatchServer}\F$\batch\exe)

Watcher panel (shown only when env is local, hidden for SaaS):

  • Status dot + label (polls _deploy-status.json every 3 seconds; green = watcher alive <10s, yellow = 10-30s, gray = not detected)
  • Inline command: powershell -ExecutionPolicy Bypass -File deploy-watcher.ps1 with a Copy button

Project cards — one per project in client.json:

  • Skip/devOnly projects: muted card, "Dev / Skip" badge, no action
  • Library projects: muted label, no action
  • Deployable (web/batch): Include checkbox + Deploy button
    • Deploy button: calls watcher IPC (_deploy-request.json), disabled when SAAS env selected
    • Include checkbox: toggles project into selectedProjects Set for packaging

Generate Package writes _package-request.json:

{
  "projects": ["OA_LifecycleManagement", "Automator"],
  "environment": "prod",
  "deployType": "SaaS",
  "webTarget": "U:\\OpenAccess\\Customization",
  "batchTarget": "\\\\batchserver\\F$\\batch\\exe",
  "requestedAt": "2026-06-23T14:30:00Z"
}

After writing, show message on button: ✓ Request written — run /create-deployment-package in Claude Code for 6 seconds.

Watcher IPC (local deploys): portal writes _deploy-request.json; watcher writes _deploy-status.json with { requestId, status, message, watcherAlive }.

History tab

Reads deploy-history.json. Shows entries grouped by date with project name, env badge, deploy type badge, and relative time. "Clear History" button. Entry format: { project, timestamp, env, deployType }.

Path constants:

  • Local web: C:\Program Files (x86)\JDA\Intactix\Intactix Knowledge Base\Open Access
  • SaaS web: U:\OpenAccess\Customization
  • Batch: derived from envConfig[envKey].BatchServer as \\{server}\F$\batch\exe

Step 8 — Generate ONBOARDING.md

Write to repo root. Contents:

  • What the repo is (one paragraph)
  • MCP setup (mssql-server via Switch-SqlEnv.ps1, restart Claude Code after)
  • Skills table (kraken:openaccess-controls, kraken:csharp-styling, kraken:jda-space-automation, kraken:datamanager-converter)
  • Build and deploy (use portal or manual msbuild + CopyWebUI.bat)
  • Key files table
  • Database section (ckbcustom schema, CKB database, stored proc naming)
  • Integration tests section

Step 9 — Update .github/copilot-instructions.md

Append two sections at the end:


---

## Deploy Package Requests

- If `_package-request.json` exists in the repo root, invoke `/create-deployment-package` to build the package
- The skill reads `_package-request.json`, MSBuilds each project, gathers compiled output + SQL files, generates `Deploy.ps1` + `README.md`, and writes the package to `deploy-packages/`
- Delete `_package-request.json` after the package is built

---

## client.json Maintenance

- If `.csproj` files exist in the repo that are not listed in `client.json`, ask the developer to tag each new project (`web` / `batch` / `skip`) and update `client.json` before proceeding with any build/deploy task

Step 10 — Update CLAUDE.md

Append to the project's CLAUDE.md:


---

## Auto-trigger: client onboarding

If `client.json` does not exist in the repo root, invoke `kraken:client-onboarding`
before doing anything else in this repo.

Step 11 — Update .gitignore

Add if not already present:

# Portal IPC files — never commit
_deploy-request.json
_deploy-status.json
_package-request.json
deploy-history.json

# Generated deploy packages — never commit
deploy-packages/

Step 12 — Update CopyWebUI.bat files

For each web-target project that has a CopyWebUI.bat, replace the hardcoded WEB_APPLICATION_DIR line with:

if "%DEPLOY_TARGET%"=="" (
    SET DEPLOY_TARGET=C:\Program Files (x86)\JDA\Intactix\Intactix Knowledge Base\Open Access
)
SET WEB_APPLICATION_DIR=%DEPLOY_TARGET%

Step 13 — Add _Portal solution folder to .sln

Find the .sln file in the repo root. Add a solution folder named _Portal containing all the generated root files so they are visible in Visual Studio Solution Explorer.

Generate a new GUID (PowerShell: [System.Guid]::NewGuid().ToString().ToUpper()).

Insert this block before the first Project( line in the .sln file:

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Portal", "_Portal", "{<NEW-GUID>}"
	ProjectSection(SolutionItems) = preProject
		[ClientName].html = [ClientName].html
		client.json = client.json
		CLAUDE.md = CLAUDE.md
		ONBOARDING.md = ONBOARDING.md
		README.md = README.md
		Setup.ps1 = Setup.ps1
	EndProjectSection
EndProject

Replace [ClientName].html with the actual portal filename. The underscore prefix on _Portal sorts it to the top of Solution Explorer alphabetically.

If no .sln file exists in the repo root, skip this step.


Step 14 — Commit everything

git add client.json README.md Setup.ps1 [ClientName].html ONBOARDING.md
git add .github/copilot-instructions.md CLAUDE.md .gitignore
git add $(git ls-files --modified "**/CopyWebUI.bat")
git add *.sln
git commit -m "chore: add client onboarding artifacts"
</task> <constraints> - This skill runs **local only** (Claude Code). Never needs to re-run after initial setup. - New projects are always added locally first (VS creates them), then pushed. Copilot detects new `.csproj` files not in `client.json` and asks to tag them. - `env-config.json` and `build-request.json` are gitignored — never commit them. - `client.json` IS committed — it describes repo structure, not credentials. - File System Access API: Chrome and Edge only, Safari not supported. Browser prompts once per session for the repo root folder. </constraints>

Keep looking

Skills are one crate of 626,474. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.