-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathstack.toml
More file actions
125 lines (110 loc) · 4.62 KB
/
Copy pathstack.toml
File metadata and controls
125 lines (110 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# claude-leverage stack manifest
#
# Declarative list of things /stack-check verifies. Bump min_version when
# this plugin starts requiring a newer release of a dependency (security
# fix, feature dependency, etc.). The stack-freshness SessionStart hook is
# local-only — it only reads a timestamp file. The network checks
# (marketplace catalog, latest release, etc.) only happen when the user
# explicitly runs /stack-check.
#
# `update_hint` is the legacy single-string fallback. Per-OS hints in
# `update_hint_macos` / `update_hint_linux` / `update_hint_windows` take
# precedence when /stack-check runs on the matching platform.
[plugin]
name = "claude-leverage"
marketplace = "filip-podstavec"
# Manifest version. Bumped when the *shape* of stack.toml changes, not
# when plugin.json version bumps. /stack-check uses this for informational
# logging only as of v1.1.0 — the "refuse loading future versions" guard
# is aspirational; current additions (v1 -> v2 = per-OS update hints) are
# strictly additive so legacy /stack-check still works.
manifest_version = 2 # v2: per-OS update hints (update_hint_macos/linux/windows)
# Host CLIs (Claude Code, Codex). Checked if found on PATH; missing is
# warned-not-failed for `optional = true`.
[[host.tool]]
name = "claude"
display_name = "Claude Code"
min_version = "2.1.0"
check_cmd = "claude --version"
# Claude Code updates via the app itself, not via package manager.
update_hint = "Update via the Claude Code app (Settings → Updates) or `claude update`."
optional = false
[[host.tool]]
name = "codex"
display_name = "Codex CLI"
min_version = "0.40.0"
check_cmd = "codex --version"
update_hint = "npm i -g @openai/codex"
optional = true # Codex install is opt-in; missing is fine.
# Shared CLI dependencies — hooks, skills, and the install scripts all
# rely on these being available.
[[deps.tool]]
name = "git"
min_version = "2.40.0"
check_cmd = "git --version"
update_hint = "Update git via your package manager."
update_hint_macos = "brew install git"
update_hint_linux = "apt install git # or your distro's equivalent"
update_hint_windows = "winget install Git.Git # or download from git-scm.com"
optional = false
[[deps.tool]]
name = "rg"
display_name = "ripgrep"
min_version = "13.0.0"
check_cmd = "rg --version"
update_hint = "Install ripgrep via your package manager."
update_hint_macos = "brew install ripgrep"
update_hint_linux = "apt install ripgrep # or: cargo install ripgrep"
update_hint_windows = "winget install BurntSushi.ripgrep.MSVC"
optional = false
[[deps.tool]]
name = "python"
min_version = "3.10"
check_cmd = "python --version"
update_hint = "python.org or system package manager."
update_hint_macos = "brew install python@3.12 # or pyenv install 3.12"
update_hint_linux = "apt install python3 # or pyenv install 3.12"
update_hint_windows = "winget install Python.Python.3.12 # or python.org"
optional = false
# Optional dependencies — features degrade gracefully if absent, but
# /stack-check reports them so the user can decide whether to install.
[[deps.tool]]
name = "jq"
min_version = "1.6"
check_cmd = "jq --version"
update_hint = "Install jq (hooks fall back to python if absent)."
update_hint_macos = "brew install jq"
update_hint_linux = "apt install jq # or dnf/yum/pacman equivalent"
update_hint_windows = "winget install jqlang.jq"
optional = true
[[deps.tool]]
name = "mmdc"
display_name = "mermaid-cli"
min_version = "10.0.0"
check_cmd = "mmdc --version"
update_hint = "npm i -g @mermaid-js/mermaid-cli # (requires Node)"
# Same install command on every OS (npm); kept generic.
optional = true # /repo-map and /process-diagram skip validation if absent.
[[deps.tool]]
name = "node"
display_name = "Node.js"
min_version = "20.0.0"
check_cmd = "node --version"
update_hint = "nodejs.org or your version manager."
update_hint_macos = "brew install node@20 # or nvm install 20"
update_hint_linux = "Install via nvm (https://github.com/nvm-sh/nvm) or your distro"
update_hint_windows = "winget install OpenJS.NodeJS.LTS # or nodejs.org"
optional = true # Required transitively for mmdc and Codex.
[[deps.tool]]
name = "shellcheck"
min_version = "0.8.0"
check_cmd = "shellcheck --version"
update_hint = "Install shellcheck for local hook linting."
update_hint_macos = "brew install shellcheck"
update_hint_linux = "apt install shellcheck"
update_hint_windows = "winget install koalaman.shellcheck # or scoop install shellcheck"
optional = true # Used in CI; nice-to-have locally for hook authoring.
# Freshness defaults — overridable via env vars per the hook implementation.
[freshness]
threshold_days = 30
state_dir = "~/.local/state/claude-leverage" # falls back to ~/.claude/claude-leverage