-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmise.toml
More file actions
119 lines (100 loc) 路 3.69 KB
/
Copy pathmise.toml
File metadata and controls
119 lines (100 loc) 路 3.69 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
[tools]
"github:crate-ci/committed" = "latest"
dprint = "latest"
gitleaks = "latest"
lefthook = "latest"
lua-language-server = "3"
neovim = "latest"
# @kitlangton/stack@0.2.0 is a low-traffic direct mise tool with npm trusted-publisher provenance.
"npm:@kitlangton/stack" = { version = "latest", aube_args = "--allow-low-downloads" }
taplo = "latest"
stylua = "2"
aube = "latest"
ripgrep = "latest"
node = "24"
"npm:@fission-ai/openspec" = { version = "latest", aube_args = "--deny-build=@fission-ai/openspec" }
[settings]
# use aube instead of npm when using npm:<package>
npm.package_manager = "aube"
[env]
OPENSPEC_TELEMETRY = 0
DO_NOT_TRACK = 1
# Exact Effect beta exceptions needed by mise's aube-backed npm tool installs.
AUBE_TRUST_POLICY_EXCLUDE = "@effect/platform-node@4.0.0-beta.64,@effect/platform-node-shared@4.0.0-beta.83,effect@4.0.0-beta.64,effect@4.0.0-beta.83"
[hooks]
postinstall = "lefthook install"
[tasks.fmt]
description = "Format code with dprint"
run = "dprint fmt"
[tasks."fmt:check"]
description = "Check code formatting with dprint"
run = "dprint check"
[tasks."openspec:check"]
description = "Validate OpenSpec artifacts"
run = """
openspec validate --all --strict --no-interactive
node scripts/check-spec-test-links.mjs check
"""
[tasks."spec:coverage"]
description = "Report OpenSpec scenario and spec-file test coverage"
usage = '''
flag "--json" help="Output coverage as JSON"
flag "--min-coverage-percent <percent>" help="Fail if scenario coverage is below this percent" default="0"
'''
run = """
#!/usr/bin/env bash
set -euo pipefail
args=(--min-coverage-percent "${usage_min_coverage_percent?}")
if [[ "${usage_json:-false}" == "true" ]]; then
args+=(--json)
fi
node scripts/check-spec-test-links.mjs coverage "${args[@]}"
"""
[tasks."spec:uncovered"]
description = "List OpenSpec spec files with no test coverage"
run = "node scripts/check-spec-test-links.mjs uncovered-spec-files"
[tasks."spec:list"]
description = "List OpenSpec specs"
run = "openspec list --specs"
[tasks."spec:untested"]
description = "List OpenSpec scenarios with no test coverage"
run = "node scripts/check-spec-test-links.mjs untested-scenarios"
[tasks."test:pending"]
description = "List pending tests with descriptions"
run = "node scripts/check-spec-test-links.mjs pending-tests"
[tasks."test:unspecified"]
description = "List active tests with no related OpenSpec scenario tag"
run = "node scripts/check-spec-test-links.mjs untagged-tests"
[tasks.test]
description = "Run Neovim test suite via plenary"
run = """
PLENARY_PATH=/tmp/plenary.nvim
if [ ! -d "$PLENARY_PATH" ]; then
git clone --depth=1 https://github.com/nvim-lua/plenary.nvim "$PLENARY_PATH"
fi
status=0
for spec in test/*_spec.lua; do
nvim --headless \
-n \
-c "set rtp+=.,${PLENARY_PATH} | runtime plugin/plenary.vim | runtime plugin/bullets.lua" \
--noplugin \
-c "lua require('plenary.busted').run('${spec}')" || status=1
done
exit $status
"""
[tasks."test:spec"]
description = "Run tests tagged with a specific OpenSpec scenario ID"
usage = '''
arg "<scenario_id>" help="OpenSpec scenario ID to run"
complete "scenario_id" run="rg --no-filename --only-matching '#[A-Z][A-Z0-9]+-[0-9]{3}' openspec/specs | tr -d '#' | sort -u"
'''
run = "node scripts/run-spec-tag.mjs ${usage_scenario_id?}"
[tasks."lua:lint"]
description = "List Lua language server diagnostics"
run = "lua-language-server --check . --checklevel=Hint --check_format=pretty"
[tasks."release:signing-key"]
description = "Generate/export the release-please GPG signing key"
file = "scripts/release-please-gpg-key.sh"
[tasks."release:signing-key:print"]
description = "Print release-please GPG signing values to stdout"
run = "bash scripts/release-please-gpg-key.sh --print"