Commit Graph
13 Commits
Author SHA1 Message Date
Aleksey Shakhmatov 3c44853cde fix(install): gate confluence for every profile and dedup PROFILE selection
- Add 'confluence' (always-enabled, per README) to COMMON_BUNDLED so a
  default install (no PI_KIT_PROFILE / no tty) no longer silently strips
  it from settings.json. The allowlist now covers every skill under skills/.
- Deduplicate PROFILES in profiles_from_text: skip a canonical name already
  present, so 'frontend,1' or 'backend backend' no longer causes a redundant
  'npx skills add' call or a misleading 'Профили: frontend frontend'.
- Ship the multi-profile refactor it builds on: merged profile sets,
  profile_skills()/add_word() helpers, README updates, and the pm-task-spec
  bundled skill.

Validated: bash -n; functional checks for dedup and allowlist coverage.
2026-08-10 12:11:53 +03:00
Aleksey Shakhmatov 88eb02e17f docs(skills): document simplify in common public skills 2026-08-06 15:14:26 +03:00
Aleksey Shakhmatov c2f45da70c docs(api-tools): document native Jira/Confluence/GitLab tools, drop MCP references 2026-08-06 14:43:23 +03:00
Aleksey Shakhmatov 035bededb0 feat(uninstall): one-command full uninstall with confirmation
- uninstall.sh: removes pi-kit from settings.json (string + gated object
  entries), the package clone, kit-installed public skills, ~/.config/pi-kit
  (env.sh with tokens, audit.jsonl) and the shell-rc sourcing block
- confirmation prompt by default; PI_KIT_UNINSTALL=1 for non-interactive,
  PI_KIT_KEEP_CONFIG=1 / PI_KIT_KEEP_SKILLS=1 to retain parts
- works without the pi binary (settings edited directly); notes how to
  remove pi itself
- tests: test/uninstall.test.sh against a throwaway $HOME (14 checks:
  full/partial removal, refusal without flag, idempotent re-run), wired
  into npm test
2026-08-06 11:45:50 +03:00
Aleksey Shakhmatov 7b25f0eea1 docs(readme): reflect review fixes — profile-neutral /review, <lang>-standards, /mcp-status, TODO-warnings, test layout 2026-08-06 11:41:22 +03:00
Aleksey Shakhmatov c068dfae0c fix(review): address review findings (guardrails, prompts, tests, docs)
- permission-gate: block refs/tags/v* pushes, rm -r -f separated flags,
  git reset --hard, git clean (verified against actual bypasses)
- prompts: /bugfix /feature /review no longer hardcode go-standards —
  reference profile-gated <lang>-standards instead
- company-context: drop hardcoded Go stack, note TRACKER_URL priority,
  warn on context truncation instead of silently dropping rules
- repo-map/docs-map: graceful degradation when config values are TODO
- /kit-doctor: warn on unfilled config fields (repoMap/trackerUrl/docsUrl)
- audit: retry POSTs to endpoint (3 attempts, backoff), still best-effort
- install.sh: remove TODO course URL from cheat sheet
- tests: expand guardrails (43 node checks), add shell tests for create-mr.sh
  (scp/https origin parse, GITLAB_HOST override, protected branch refusal),
  cover company-context lib (normalize/fetch/truncation) and mcp-bridge
- commit package-lock.json for reproducible installs
- document npm test Node >= 22.6 requirement (type stripping)
2026-08-06 11:22:53 +03:00
dev 1df4ea1b72 fix(docs): correct install one-liner raw URL (Gitea, not GitLab) + v0.2.1
git.codelab.vc is Gitea/Forgejo: raw path is /raw/branch/<ref>/, the GitLab-style
/-/raw/main/ returned 404 so the one-command install was broken. The one-liner
now also fetches the script from the stable channel (vetted), not main.
2026-07-16 15:24:47 +03:00
dev f4ebdd745a docs(readme): document new commands, guardrails, channels
- command table: /kit-doctor, /kit-help
- guardrails: secret-scanner, commit-guard, llm-redaction, audit-log; permission-gate updated to release-*/v*
- install/update: channels (stable/beta), PI_KIT_CHANNEL, link to RELEASING.md
- maintainer: extensions/lib note, npm test, releases section
2026-07-16 13:51:56 +03:00
dev a6a4d4fee3 feat(install): interactive environment setup (URLs + secrets)
- prompt TRACKER_URL (visible, current value as default) and JIRA_TOKEN/GITLAB_TOKEN/provider key (hidden read -rs, never echoed) via /dev/tty (works under curl|bash)
- persist to ~/.config/pi-kit/env.sh (umask 077 => chmod 600), sourced from shell rc via idempotent managed block
- ask provider key only if none already set; empty input keeps existing value; re-runs load stored values as defaults
- non-interactive / PI_KIT_SETUP_ENV=0 falls back to printed guidance
- README documents the flow, env.sh, and the skip switch

Unit-tested: single-quote escaping round-trip, 600 perms, empty-value omission, rc-block idempotency.
2026-07-16 12:56:35 +03:00
dev e98e4ca9ae feat(skills): add kotlin-standards + swift-standards for mobile profile
- kotlin-standards: gradle build/test, ktlint/detekt, Android lint; company specifics TODO
- swift-standards: SwiftPM/xcodebuild, swiftformat/swiftlint, XCTest; company specifics TODO
- wire mobile profile -> kotlin+swift; 'all' now includes both; README matrix updated
- verified all six *-standards skills load via pi RPC
2026-07-16 12:31:12 +03:00
dev fbf10b0521 feat(install): profile-based skill gating + public skills
- prompt for profile (frontend/backend/qa/mobile) via /dev/tty (works under curl|bash); PI_KIT_PROFILE env fallback
- gate bundled skills per profile by rewriting the pi-kit entry in settings.json to object-form {source, skills:[...]}; prompts/extensions stay ungated
- install common public skills for everyone (grill-me, grill-with-docs, code-review, diagnosing-bugs from mattpocock/skills) and profile-specific (frontend-design from anthropics/skills) via npx skills add --global
- README: profiles table + gating mechanism for maintainers

Verified: gating logic (string->object, idempotent, other packages preserved), live backend-profile load via RPC (ts excluded, prompts intact), npx skills add --global lands in ~/.agents/skills without cwd pollution, all 4 common skills exist in mattpocock/skills (diagnose is 'diagnosing-bugs').
2026-07-16 12:15:07 +03:00
dev bc4ceb100d fix(install): make provider check provider-agnostic
Engineers use different LLM providers (Anthropic/OpenAI/OpenRouter/...); the
package does not pin a provider or model. install.sh now accepts any known
provider key and README states provider-agnosticism explicitly.
2026-07-16 11:28:12 +03:00
dev 36df885b32 docs: add README for employees and maintainers (in Russian)
- employee: one-command install, update, command table, skills, guardrails
- maintainer: package layout, single-file config + remoteConfigUrl, how to add skill/prompt/extension, MR-only supply-chain rule, local verification
2026-07-16 11:14:54 +03:00