pruff-skills 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.mjs +33 -16
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -7962,6 +7962,12 @@ If the session is already rooted inside the repo (or one of its worktrees), they
7962
7962
  | \`Pruff-Backoffice/\` | React 19 + Vite + MUI v7 internal staff frontend. Cross-tenant views, tenant config, roles/permissions. React Query + Zustand. Consumes \`/api/backoffice\`. Branches from \`main\` (no \`dev\`); no test suite. |
7963
7963
  | \`Pruff-server/\` | Node.js 22 / Express / Prisma backend. Multi-tenant (DB-per-tenant), many domains and routes. |
7964
7964
 
7965
+ ### Team context
7966
+
7967
+ | Folder | What it is |
7968
+ |---|---|
7969
+ | \`slides/\` | The team's decks (React + Vite): sprint updates, plans, per-team status. Read them for the current priorities and who owns what. \`npm run dev\` serves them; see its README to add a deck. |
7970
+
7965
7971
  ### Serverless microservices (\`sls-*/\`, \`slsl-*/\` — clone as needed, don't modify unless asked)
7966
7972
 
7967
7973
  All live in the same AWS account, share the \`lambda-sqs\` IAM role, and most use a shared
@@ -8605,17 +8611,26 @@ const PRISMA_BIN = join("node_modules", ".bin", "prisma");
8605
8611
  const KNOWLEDGE_REPO = "https://github.com/Pruff-Tech/pruff-knowledge";
8606
8612
  const KNOWLEDGE_DIR = "Pruff Knowledge";
8607
8613
  const DEFAULT_WORKSPACE = join(homedir(), "pruff");
8608
- const MAIN_REPOS = [{
8609
- name: "Pruff-server",
8610
- url: "https://github.com/Pruff-Tech/Pruff-server",
8611
- installCmd: "bun",
8612
- installArgs: ["install"]
8613
- }, {
8614
- name: "Pruff-Client",
8615
- url: "https://github.com/Pruff-Tech/Pruff-Client",
8616
- installCmd: "yarn",
8617
- installArgs: ["install"]
8618
- }];
8614
+ const MAIN_REPOS = [
8615
+ {
8616
+ name: "Pruff-server",
8617
+ url: "https://github.com/Pruff-Tech/Pruff-server",
8618
+ installCmd: "bun",
8619
+ installArgs: ["install"]
8620
+ },
8621
+ {
8622
+ name: "Pruff-Client",
8623
+ url: "https://github.com/Pruff-Tech/Pruff-Client",
8624
+ installCmd: "yarn",
8625
+ installArgs: ["install"]
8626
+ },
8627
+ {
8628
+ name: "slides",
8629
+ url: "https://github.com/Pruff-Tech/slides",
8630
+ installCmd: "npm",
8631
+ installArgs: ["install"]
8632
+ }
8633
+ ];
8619
8634
  const CORE_SKILLS = [
8620
8635
  "commit",
8621
8636
  "create-pr",
@@ -8716,7 +8731,8 @@ async function runOnboarding(args) {
8716
8731
  await installCatalog(workspace);
8717
8732
  setStep("install-harness");
8718
8733
  await installHarness(workspace);
8719
- if (await shouldSetupDatabase(args)) {
8734
+ const databaseStepRan = await shouldSetupDatabase(args);
8735
+ if (databaseStepRan) {
8720
8736
  setStep("local-database");
8721
8737
  await setupLocalEnvironment(join(workspace, "Pruff-server"));
8722
8738
  }
@@ -8729,7 +8745,7 @@ async function runOnboarding(args) {
8729
8745
  }
8730
8746
  setStep("guidance");
8731
8747
  await showGuidance(workspace);
8732
- showTeamCredentialsAsk(workspace);
8748
+ showTeamCredentialsAsk(workspace, databaseStepRan);
8733
8749
  showIssues();
8734
8750
  showLocalLogin();
8735
8751
  if (issues.length === 0) Se(`${import_picocolors.default.green("Done.")} Welcome to Pruff — happy building.`);
@@ -9598,6 +9614,7 @@ async function showGuidance(workspace) {
9598
9614
  [`${KNOWLEDGE_DIR}/`, "Obsidian vault — open it in Obsidian"],
9599
9615
  ["Pruff-server/", "backend (bun)"],
9600
9616
  ["Pruff-Client/", "frontend (yarn)"],
9617
+ ["slides/", "team decks: sprint updates, plans, team status (npm run dev)"],
9601
9618
  ["sls-*/", "serverless services — clone as you need them"]
9602
9619
  ];
9603
9620
  const labelWidth = Math.max(...tree.map(([label]) => label.length)) + 2;
@@ -9609,14 +9626,14 @@ async function showGuidance(workspace) {
9609
9626
  line(import_picocolors.default.bold("Next steps"));
9610
9627
  line(`${import_picocolors.default.dim("1.")} Open ${import_picocolors.default.bold("Obsidian")} → the ${import_picocolors.default.cyan(KNOWLEDGE_DIR)} vault is registered and ready.`);
9611
9628
  line(`${import_picocolors.default.dim("2.")} Start Claude Code from ${import_picocolors.default.cyan(workspace)} so the shared ${import_picocolors.default.dim(".claude/")} applies everywhere.`);
9612
- line(`${import_picocolors.default.dim("3.")} Dependencies are installed — ${import_picocolors.default.dim("cd Pruff-server && npm run local")} / ${import_picocolors.default.dim("cd Pruff-Client && yarn start-local")}.`);
9629
+ line(`${import_picocolors.default.dim("3.")} Dependencies are installed — ${import_picocolors.default.dim("cd Pruff-server && npm run local")} / ${import_picocolors.default.dim("cd Pruff-Client && yarn start-local")} / ${import_picocolors.default.dim("cd slides && npm run dev")} for the team decks.`);
9613
9630
  line(`${import_picocolors.default.dim("4.")} Run ${import_picocolors.default.dim("/mcp")} inside Claude Code to authenticate Linear + PostHog (already configured in ${import_picocolors.default.dim(".mcp.json")}).`);
9614
9631
  line(`${import_picocolors.default.dim("5.")} Clone any serverless service into this folder with ${import_picocolors.default.dim("git clone <repo>")}.`);
9615
9632
  line(`${import_picocolors.default.dim("6.")} Install the ${import_picocolors.default.bold("Claude in Chrome")} extension and run ${import_picocolors.default.dim("claude --chrome")} — UI checks and PR screenshots drive the browser through it.`);
9616
9633
  line(`${import_picocolors.default.dim("7.")} Prod data is read-only: ${import_picocolors.default.dim("pruff-db-query <database> -e \"SELECT …\"")} — your own reader user, password in the Keychain, verified TLS. Finish a pending request with ${import_picocolors.default.dim("npx pruff-skills onboarding --db-access")}.`);
9617
9634
  console.log();
9618
9635
  }
9619
- function showTeamCredentialsAsk(workspace) {
9636
+ function showTeamCredentialsAsk(workspace, databaseStepRan) {
9620
9637
  const envPath = join(workspace, "Pruff-server", "local.env");
9621
9638
  const line = (s) => console.log(` ${s}`);
9622
9639
  line(import_picocolors.default.bold("Ask your team for these credentials") + import_picocolors.default.dim(" (1Password / #dev)"));
@@ -9627,7 +9644,7 @@ function showTeamCredentialsAsk(workspace) {
9627
9644
  line(` ${import_picocolors.default.dim(group.unlocks)}`);
9628
9645
  }
9629
9646
  line("");
9630
- line(import_picocolors.default.dim("Everything else — the databases, the local tenant, Intelligence — is already set up and needs nothing from anyone."));
9647
+ line(import_picocolors.default.dim(databaseStepRan ? "Everything else — the databases, the local tenant, Intelligence — is already set up and needs nothing from anyone." : `The local databases were skipped. Set them up with ${import_picocolors.default.cyan("npx pruff-skills onboarding --db")}.`));
9631
9648
  console.log();
9632
9649
  }
9633
9650
  function showIssues() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pruff-skills",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "The official Pruff agent skills CLI",
5
5
  "type": "module",
6
6
  "bin": {