@rse/ase 2.0.4 → 2.0.6

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 (48) hide show
  1. package/dst/ase-config-schema.js +1 -1
  2. package/dst/ase-hook.js +12 -3
  3. package/dst/ase-setup-settings.js +111 -1
  4. package/dst/ase-setup.js +19 -7
  5. package/dst/ase-spec.js +184 -49
  6. package/dst/ase-task-board-tui-model.js +8 -1
  7. package/dst/ase-task-board-tui.js +26 -2
  8. package/dst/ase-task-board-web-client.js +10 -10
  9. package/dst/man/ase-artifact.md +1 -1
  10. package/dst/man/ase-config.md +5 -3
  11. package/dst/man/ase-mcp.md +1 -1
  12. package/dst/man/ase-setup-install.md +10 -1
  13. package/dst/man/ase-setup-status.md +6 -0
  14. package/dst/man/ase-setup-uninstall.md +3 -1
  15. package/dst/man/ase-setup-update.md +3 -0
  16. package/dst/man/ase-setup.md +4 -4
  17. package/dst/man/ase-spec-export.md +14 -3
  18. package/dst/man/ase-spec-init.md +10 -1
  19. package/dst/man/ase-spec-lint.md +2 -1
  20. package/dst/man/ase-spec-preview.md +10 -1
  21. package/dst/man/ase-spec-query.md +96 -0
  22. package/dst/man/ase-spec.md +32 -11
  23. package/dst/man/ase.md +3 -3
  24. package/package.json +21 -18
  25. package/plugin/.claude-plugin/icon.png +0 -0
  26. package/plugin/.claude-plugin/plugin.json +1 -1
  27. package/plugin/.codex-plugin/plugin.json +1 -1
  28. package/plugin/.github/plugin/plugin.json +1 -1
  29. package/plugin/meta/ase-format-spec.md +29 -5
  30. package/plugin/meta/ase-format-specbook.md +427 -47
  31. package/plugin/meta/ase-format-specbook.yaml +180 -78
  32. package/plugin/mods/ase-mods-common.ts +474 -0
  33. package/plugin/mods/ase-mods-evaluate.ts +227 -0
  34. package/plugin/mods/ase-mods-grill.ts +283 -0
  35. package/plugin/mods/ase-mods-help-browse.ts +410 -0
  36. package/plugin/mods/ase-mods-help-compose.ts +561 -0
  37. package/plugin/mods/ase-mods-help-find.ts +434 -0
  38. package/plugin/mods/ase-mods-help-hint.ts +134 -0
  39. package/plugin/mods/ase-mods-help-show.ts +142 -0
  40. package/plugin/mods/ase-mods.ts +220 -381
  41. package/plugin/skills/ase-code-lint/SKILL.md +15 -15
  42. package/plugin/skills/ase-code-lint/help.md +21 -8
  43. package/plugin/skills/ase-help-intent/SKILL.md +2 -1
  44. package/plugin/skills/ase-help-intent/data.md +42 -16
  45. package/plugin/skills/ase-spec-activate/SKILL.md +4 -1
  46. package/plugin/skills/ase-spec-lint/SKILL.md +15 -15
  47. package/plugin/skills/ase-spec-lint/help.md +21 -8
  48. package/plugin/mods/claude-code.d.ts +0 -13440
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ase-code-lint
3
- argument-hint: "[--help|-h] [--auto|-a] [--severity|-S=(AUTO|LOW|MEDIUM|HIGH)] [--include|-i=<aspect>[,...]] [--exclude|-e=<aspect>[,...]] [--staged] [--unstaged] [<source-reference>]"
3
+ argument-hint: "[--help|-h] [--auto|-a] [--severity|-S=(AUTO|LOW|MEDIUM|HIGH)] [--force|-f] [--include|-i=<aspect>[,...]] [--exclude|-e=<aspect>[,...]] [--staged] [--unstaged] [<source-reference>]"
4
4
  description: >
5
5
  Lint source code for potential code quality problems.
6
6
  Use when the user wants to "lint" or "check" source code.
@@ -23,7 +23,7 @@ Lint Source Code
23
23
 
24
24
  <expand name="getopt"
25
25
  arg1="ase-code-lint"
26
- arg2="--auto|-a --severity|-S=(AUTO|LOW|MEDIUM|HIGH) --include|-i=(none|A01|A02|A03|A04|A05|A06|A07|A08|A09|A10|A11|A12|A13|A14|A15|A16|A17|A18|A19|A20|A21)... --exclude|-e=(none|A01|A02|A03|A04|A05|A06|A07|A08|A09|A10|A11|A12|A13|A14|A15|A16|A17|A18|A19|A20|A21)... --staged --unstaged">
26
+ arg2="--auto|-a --severity|-S=(AUTO|LOW|MEDIUM|HIGH) --force|-f --include|-i=(none|A01|A02|A03|A04|A05|A06|A07|A08|A09|A10|A11|A12|A13|A14|A15|A16|A17|A18|A19|A20|A21)... --exclude|-e=(none|A01|A02|A03|A04|A05|A06|A07|A08|A09|A10|A11|A12|A13|A14|A15|A16|A17|A18|A19|A20|A21)... --staged --unstaged">
27
27
  $ARGUMENTS
28
28
  </expand>
29
29
 
@@ -36,11 +36,11 @@ related to a set of code quality aspects.
36
36
 
37
37
  1. <step id="STEP 1: Investigation">
38
38
 
39
- <if condition="<ase-project-boxing/> is equal `black` and <getopt-option-severity/> is equal `AUTO`">
39
+ <if condition="<ase-project-boxing/> is equal `black` and <getopt-option-force/> is not equal `true`">
40
40
 
41
41
  The project source artifacts are classified as a *black box*, so
42
42
  the user does *not* want them inspected or their problems surfaced
43
- (an *explicitly* given severity floor lifts this skip).
43
+ (the `--force` option lifts this skip).
44
44
  *Skip* the entire investigation and reporting: do *not* invoke any
45
45
  `Bash`, `Glob`, or `Agent` tool and do *not* read any source, only
46
46
  output the following <template/> and then *SKIP* the remaining steps
@@ -53,9 +53,9 @@ related to a set of code quality aspects.
53
53
  </if>
54
54
 
55
55
  Set <condensed>true</condensed> if <ase-project-boxing/> is equal
56
- `grey` or `black` (the latter reached only under an explicitly given
57
- severity floor), and <condensed>false</condensed> otherwise: a
58
- *condensed* report suppresses the full unified diffs of STEP 3.
56
+ `grey` and <getopt-option-force/> is not equal `true`, and
57
+ <condensed>false</condensed> otherwise: a *condensed* report
58
+ suppresses the full unified diffs of STEP 3.
59
59
 
60
60
  First, determine the *effective aspect set* <aspects/>, i.e., the
61
61
  code quality aspects which are checked at all. For this, parse
@@ -189,13 +189,13 @@ related to a set of code quality aspects.
189
189
 
190
190
  <if condition="<getopt-option-severity/> is equal `AUTO`">
191
191
  Set <floor>MEDIUM</floor> if <ase-project-boxing/> is equal `grey`
192
- (grey boxing surfaces only *material* findings of severity `MEDIUM`
193
- and above), and <floor>LOW</floor> otherwise.
192
+ and <getopt-option-force/> is not equal `true` (grey boxing surfaces
193
+ only *material* findings of severity `MEDIUM` and above), and
194
+ <floor>LOW</floor> otherwise.
194
195
  </if>
195
196
  <else>
196
197
  Set <floor><getopt-option-severity/></floor>: an *explicitly* given
197
- severity floor always *wins* over the boxing, both over the `grey`
198
- floor and over the `black` skip.
198
+ severity floor always *wins* over the `grey` boxing floor.
199
199
  </else>
200
200
 
201
201
  Then *apply the effective severity floor* <floor/>: *Keep* a problem
@@ -448,9 +448,9 @@ related to a set of code quality aspects.
448
448
 
449
449
  <if condition="<condensed/> is equal `true`">
450
450
 
451
- The project source artifacts are classified as a *grey box* (or
452
- *black box*), so the user does *not* want the full artifact
453
- internals surfaced:
451
+ The project source artifacts are classified as a *grey box*,
452
+ so the user does *not* want the full artifact internals
453
+ surfaced:
454
454
  *suppress* the full unified diff and instead show only the
455
455
  *condensed* one-line-per-hunk representation. Report the
456
456
  solution with the following <template/>:
@@ -578,7 +578,7 @@ related to a set of code quality aspects.
578
578
 
579
579
  <if condition="<getopt-option-auto/> is not equal `true`">
580
580
  <ase-tpl-hint level="verbose">
581
- Use `/ase-code-lint --auto` to apply all corrections unattended, `--severity` to raise the reporting floor, `--include`/`--exclude` to narrow the checked aspects, and `--staged`/`--unstaged` to lint only the changed files.
581
+ Use `/ase-code-lint --auto` to apply all corrections unattended, `--severity` to raise the reporting floor, `--force` to ignore the project boxing, `--include`/`--exclude` to narrow the checked aspects, and `--staged`/`--unstaged` to lint only the changed files.
582
582
  </ase-tpl-hint>
583
583
  </if>
584
584
 
@@ -9,6 +9,7 @@
9
9
  [`--help`|`-h`]
10
10
  [`--auto`|`-a`]
11
11
  [`--severity`|`-S`=(`AUTO`|`LOW`|`MEDIUM`|`HIGH`)]
12
+ [`--force`|`-f`]
12
13
  [`--include`|`-i`=*aspect*[`,`...]]
13
14
  [`--exclude`|`-e`=*aspect*[`,`...]]
14
15
  [`--staged`]
@@ -64,14 +65,20 @@ the code, and comments contradicting the code.
64
65
  Set the *severity floor* (default `AUTO`): findings below the chosen
65
66
  threshold are silently suppressed, ordered `LOW` < `MEDIUM` <
66
67
  `HIGH`. The default `AUTO` means `MEDIUM` for a project with `grey`
67
- boxing, no linting at all for a project with `black` boxing, and
68
- `LOW` (keep all findings) otherwise; an explicitly given floor always
69
- wins over the boxing, i.e. it also lints a project with `black`
70
- boxing and, e.g. with `LOW`, acts on all findings of a project with
71
- `grey` boxing. `ACCEPTED` findings are never suppressed. Surviving
72
- findings are reported in *descending
73
- severity* order `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`, keeping the
74
- `file`/`line` order within the same severity.
68
+ boxing (unless `--force` is given) and `LOW` (keep all findings)
69
+ otherwise; an explicitly given floor always wins over the `grey`
70
+ boxing, i.e. e.g. with `LOW`, it acts on all findings of a project
71
+ with `grey` boxing. `ACCEPTED` findings are never suppressed.
72
+ Surviving findings are reported in *descending severity* order
73
+ `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`, keeping the `file`/`line` order
74
+ within the same severity.
75
+
76
+ - `--force`|`-f`:
77
+ Ignore the project boxing entirely: lint a project with `black`
78
+ boxing (which is otherwise not linted at all), and show the full
79
+ unified diffs and the default `LOW` severity floor for a project
80
+ with `grey` boxing (which otherwise shows only condensed one-line
81
+ diffs and defaults to the `MEDIUM` severity floor).
75
82
 
76
83
  - `--include`|`-i`=*aspect*[`,`...]:
77
84
  Restrict the checked code quality aspects to the given
@@ -132,6 +139,12 @@ Lint a directory, reporting only `MEDIUM` and `HIGH` findings:
132
139
  ❯ /ase-code-lint -S MEDIUM src/handlers/
133
140
  ```
134
141
 
142
+ Lint a directory regardless of the project boxing:
143
+
144
+ ```text
145
+ ❯ /ase-code-lint --force src/handlers/
146
+ ```
147
+
135
148
  Lint a source file for the formatting and spelling aspects only:
136
149
 
137
150
  ```text
@@ -72,7 +72,8 @@ catalog you match <intent/> against:
72
72
  Match the current <intent/> against the <corpus/> and select
73
73
  *every* skill that adequately fits it -- judging the fit
74
74
  primarily by each skill's `## SCENARIOS` ("You want ...") and
75
- `## DESCRIPTION` sections. Order the selected skills from
75
+ `## DESCRIPTION` sections, and secondarily by its `## NAME`
76
+ and `## SYNOPSIS` sections. Order the selected skills from
76
77
  best-fitting to worst-fitting and keep at most the *8* best
77
78
  ones, so the dispatch dialog of sub-step 4 stays addressable.
78
79
  Set <count/> to the number of kept skills. Then, for each kept
@@ -633,6 +633,7 @@ Get insights into a specific subsystem:
633
633
  [`--help`|`-h`]
634
634
  [`--auto`|`-a`]
635
635
  [`--severity`|`-S`=(`AUTO`|`LOW`|`MEDIUM`|`HIGH`)]
636
+ [`--force`|`-f`]
636
637
  [`--include`|`-i`=*aspect*[`,`...]]
637
638
  [`--exclude`|`-e`=*aspect*[`,`...]]
638
639
  [`--staged`]
@@ -688,14 +689,20 @@ the code, and comments contradicting the code.
688
689
  Set the *severity floor* (default `AUTO`): findings below the chosen
689
690
  threshold are silently suppressed, ordered `LOW` < `MEDIUM` <
690
691
  `HIGH`. The default `AUTO` means `MEDIUM` for a project with `grey`
691
- boxing, no linting at all for a project with `black` boxing, and
692
- `LOW` (keep all findings) otherwise; an explicitly given floor always
693
- wins over the boxing, i.e. it also lints a project with `black`
694
- boxing and, e.g. with `LOW`, acts on all findings of a project with
695
- `grey` boxing. `ACCEPTED` findings are never suppressed. Surviving
696
- findings are reported in *descending
697
- severity* order `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`, keeping the
698
- `file`/`line` order within the same severity.
692
+ boxing (unless `--force` is given) and `LOW` (keep all findings)
693
+ otherwise; an explicitly given floor always wins over the `grey`
694
+ boxing, i.e. e.g. with `LOW`, it acts on all findings of a project
695
+ with `grey` boxing. `ACCEPTED` findings are never suppressed.
696
+ Surviving findings are reported in *descending severity* order
697
+ `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`, keeping the `file`/`line` order
698
+ within the same severity.
699
+
700
+ - `--force`|`-f`:
701
+ Ignore the project boxing entirely: lint a project with `black`
702
+ boxing (which is otherwise not linted at all), and show the full
703
+ unified diffs and the default `LOW` severity floor for a project
704
+ with `grey` boxing (which otherwise shows only condensed one-line
705
+ diffs and defaults to the `MEDIUM` severity floor).
699
706
 
700
707
  - `--include`|`-i`=*aspect*[`,`...]:
701
708
  Restrict the checked code quality aspects to the given
@@ -756,6 +763,12 @@ Lint a directory, reporting only `MEDIUM` and `HIGH` findings:
756
763
  ❯ /ase-code-lint -S MEDIUM src/handlers/
757
764
  ```
758
765
 
766
+ Lint a directory regardless of the project boxing:
767
+
768
+ ```text
769
+ ❯ /ase-code-lint --force src/handlers/
770
+ ```
771
+
759
772
  Lint a source file for the formatting and spelling aspects only:
760
773
 
761
774
  ```text
@@ -3587,6 +3600,7 @@ Loop over multiple specification edits inside a dedicated Git worktree:
3587
3600
  [`--help`|`-h`]
3588
3601
  [`--auto`|`-a`]
3589
3602
  [`--severity`|`-S`=(`AUTO`|`LOW`|`MEDIUM`|`HIGH`)]
3603
+ [`--force`|`-f`]
3590
3604
  [`--include`|`-i`=*aspect*[`,`...]]
3591
3605
  [`--exclude`|`-e`=*aspect*[`,`...]]
3592
3606
  [`--staged`]
@@ -3658,14 +3672,20 @@ are *never* applied under `--auto`.
3658
3672
  Set the *severity floor* (default `AUTO`): findings below the chosen
3659
3673
  threshold are silently suppressed, ordered `LOW` < `MEDIUM` <
3660
3674
  `HIGH`. The default `AUTO` means `MEDIUM` for a project with `grey`
3661
- boxing, no linting at all for a project with `black` boxing, and
3662
- `LOW` (keep all findings) otherwise; an explicitly given floor always
3663
- wins over the boxing, i.e. it also lints a project with `black`
3664
- boxing and, e.g. with `LOW`, acts on all findings of a project with
3665
- `grey` boxing. `ACCEPTED` findings are never suppressed. Surviving
3666
- findings are reported in *descending severity* order `HIGH`,
3667
- `MEDIUM`, `LOW`, `ACCEPTED`, keeping the `file`/`line` order within
3668
- the same severity.
3675
+ boxing (unless `--force` is given) and `LOW` (keep all findings)
3676
+ otherwise; an explicitly given floor always wins over the `grey`
3677
+ boxing, i.e. e.g. with `LOW`, it acts on all findings of a project
3678
+ with `grey` boxing. `ACCEPTED` findings are never suppressed.
3679
+ Surviving findings are reported in *descending severity* order
3680
+ `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`, keeping the `file`/`line` order
3681
+ within the same severity.
3682
+
3683
+ - `--force`|`-f`:
3684
+ Ignore the project boxing entirely: lint a project with `black`
3685
+ boxing (which is otherwise not linted at all), and show the full
3686
+ unified diffs and the default `LOW` severity floor for a project
3687
+ with `grey` boxing (which otherwise shows only condensed one-line
3688
+ diffs and defaults to the `MEDIUM` severity floor).
3669
3689
 
3670
3690
  - `--include`|`-i`=*aspect*[`,`...]:
3671
3691
  Restrict the checked specification quality aspects to the given
@@ -3737,6 +3757,12 @@ Lint the specification, reporting only `MEDIUM` and `HIGH` findings:
3737
3757
  ❯ /ase-spec-lint -S MEDIUM
3738
3758
  ```
3739
3759
 
3760
+ Lint the specification regardless of the project boxing:
3761
+
3762
+ ```text
3763
+ ❯ /ase-spec-lint --force
3764
+ ```
3765
+
3740
3766
  Lint only the specification files with staged Git changes:
3741
3767
 
3742
3768
  ```text
@@ -118,7 +118,10 @@ an ad-hoc change, and it *never* touches the artifact kinds `CODE`,
118
118
 
119
119
  Serve <query/> *ad-hoc* under the **Activated Behavior** below:
120
120
  read the `SPEC` artifacts of <artifact-files/> which are related to
121
- <query/>, resolve their `[[xxx]]` references across artifacts, and
121
+ <query/> (or, for a question spanning entire object kinds, property
122
+ values, or reference relations, query them structurally via the
123
+ `ase_specbook_query(selector: "<selector/>")` tool of the `ase` MCP
124
+ server), resolve their `[[xxx]]` references across artifacts, and
122
125
  answer the query grounded in the specification content, citing the
123
126
  artifact file and object id of every statement you rely on. If
124
127
  <query/> asks for a change, apply it as an *ad-hoc modification*
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ase-spec-lint
3
- argument-hint: "[--help|-h] [--auto|-a] [--severity|-S=(AUTO|LOW|MEDIUM|HIGH)] [--include|-i=<aspect>[,...]] [--exclude|-e=<aspect>[,...]] [--staged] [--unstaged] [<spec-reference>]"
3
+ argument-hint: "[--help|-h] [--auto|-a] [--severity|-S=(AUTO|LOW|MEDIUM|HIGH)] [--force|-f] [--include|-i=<aspect>[,...]] [--exclude|-e=<aspect>[,...]] [--staged] [--unstaged] [<spec-reference>]"
4
4
  description: >
5
5
  Lint the SpecBook-based specification (SPEC) for potential quality
6
6
  problems: its syntax, its formatting, its statements, the logical
@@ -26,7 +26,7 @@ Lint Specification
26
26
 
27
27
  <expand name="getopt"
28
28
  arg1="ase-spec-lint"
29
- arg2="--auto|-a --severity|-S=(AUTO|LOW|MEDIUM|HIGH) --include|-i=(none|S01|S02|S03|S04|S05|S06|S07|S08|S09|S10)... --exclude|-e=(none|S01|S02|S03|S04|S05|S06|S07|S08|S09|S10)... --staged --unstaged">
29
+ arg2="--auto|-a --severity|-S=(AUTO|LOW|MEDIUM|HIGH) --force|-f --include|-i=(none|S01|S02|S03|S04|S05|S06|S07|S08|S09|S10)... --exclude|-e=(none|S01|S02|S03|S04|S05|S06|S07|S08|S09|S10)... --staged --unstaged">
30
30
  $ARGUMENTS
31
31
  </expand>
32
32
 
@@ -39,11 +39,11 @@ problems* related to a set of specification quality aspects.
39
39
 
40
40
  1. <step id="STEP 1: Investigation">
41
41
 
42
- <if condition="<ase-project-boxing/> is equal `black` and <getopt-option-severity/> is equal `AUTO`">
42
+ <if condition="<ase-project-boxing/> is equal `black` and <getopt-option-force/> is not equal `true`">
43
43
 
44
44
  The project source artifacts are classified as a *black box*, so
45
45
  the user does *not* want them inspected or their problems surfaced
46
- (an *explicitly* given severity floor lifts this skip).
46
+ (the `--force` option lifts this skip).
47
47
  *Skip* the entire investigation and reporting: do *not* invoke any
48
48
  `Bash`, `Glob`, or `Agent` tool and do *not* read any source, only
49
49
  output the following <template/> and then *SKIP* the remaining steps
@@ -56,9 +56,9 @@ problems* related to a set of specification quality aspects.
56
56
  </if>
57
57
 
58
58
  Set <condensed>true</condensed> if <ase-project-boxing/> is equal
59
- `grey` or `black` (the latter reached only under an explicitly given
60
- severity floor), and <condensed>false</condensed> otherwise: a
61
- *condensed* report suppresses the full unified diffs of STEP 3.
59
+ `grey` and <getopt-option-force/> is not equal `true`, and
60
+ <condensed>false</condensed> otherwise: a *condensed* report
61
+ suppresses the full unified diffs of STEP 3.
62
62
 
63
63
  First, determine the *effective aspect set* <aspects/>, i.e., the
64
64
  specification quality aspects which are checked at all. For this,
@@ -250,13 +250,13 @@ problems* related to a set of specification quality aspects.
250
250
 
251
251
  <if condition="<getopt-option-severity/> is equal `AUTO`">
252
252
  Set <floor>MEDIUM</floor> if <ase-project-boxing/> is equal `grey`
253
- (grey boxing surfaces only *material* findings of severity `MEDIUM`
254
- and above), and <floor>LOW</floor> otherwise.
253
+ and <getopt-option-force/> is not equal `true` (grey boxing surfaces
254
+ only *material* findings of severity `MEDIUM` and above), and
255
+ <floor>LOW</floor> otherwise.
255
256
  </if>
256
257
  <else>
257
258
  Set <floor><getopt-option-severity/></floor>: an *explicitly* given
258
- severity floor always *wins* over the boxing, both over the `grey`
259
- floor and over the `black` skip.
259
+ severity floor always *wins* over the `grey` boxing floor.
260
260
  </else>
261
261
 
262
262
  Then *apply the effective severity floor* <floor/>: *Keep* a problem
@@ -535,9 +535,9 @@ problems* related to a set of specification quality aspects.
535
535
 
536
536
  <if condition="<condensed/> is equal `true`">
537
537
 
538
- The project source artifacts are classified as a *grey box* (or
539
- *black box*), so the user does *not* want the full artifact
540
- internals surfaced:
538
+ The project source artifacts are classified as a *grey box*,
539
+ so the user does *not* want the full artifact internals
540
+ surfaced:
541
541
  *suppress* the full unified diff and instead show only the
542
542
  *condensed* one-line-per-hunk representation. Report the
543
543
  solution with the following <template/>:
@@ -685,7 +685,7 @@ problems* related to a set of specification quality aspects.
685
685
 
686
686
  <if condition="<getopt-option-auto/> is not equal `true`">
687
687
  <ase-tpl-hint level="verbose">
688
- Use `/ase-spec-lint --auto` to apply all non-gap corrections unattended, `--severity` to raise the reporting floor, `--include`/`--exclude` to narrow the checked aspects, and `--staged`/`--unstaged` to lint only the changed specification files.
688
+ Use `/ase-spec-lint --auto` to apply all non-gap corrections unattended, `--severity` to raise the reporting floor, `--force` to ignore the project boxing, `--include`/`--exclude` to narrow the checked aspects, and `--staged`/`--unstaged` to lint only the changed specification files.
689
689
  </ase-tpl-hint>
690
690
  </if>
691
691
 
@@ -9,6 +9,7 @@
9
9
  [`--help`|`-h`]
10
10
  [`--auto`|`-a`]
11
11
  [`--severity`|`-S`=(`AUTO`|`LOW`|`MEDIUM`|`HIGH`)]
12
+ [`--force`|`-f`]
12
13
  [`--include`|`-i`=*aspect*[`,`...]]
13
14
  [`--exclude`|`-e`=*aspect*[`,`...]]
14
15
  [`--staged`]
@@ -80,14 +81,20 @@ are *never* applied under `--auto`.
80
81
  Set the *severity floor* (default `AUTO`): findings below the chosen
81
82
  threshold are silently suppressed, ordered `LOW` < `MEDIUM` <
82
83
  `HIGH`. The default `AUTO` means `MEDIUM` for a project with `grey`
83
- boxing, no linting at all for a project with `black` boxing, and
84
- `LOW` (keep all findings) otherwise; an explicitly given floor always
85
- wins over the boxing, i.e. it also lints a project with `black`
86
- boxing and, e.g. with `LOW`, acts on all findings of a project with
87
- `grey` boxing. `ACCEPTED` findings are never suppressed. Surviving
88
- findings are reported in *descending severity* order `HIGH`,
89
- `MEDIUM`, `LOW`, `ACCEPTED`, keeping the `file`/`line` order within
90
- the same severity.
84
+ boxing (unless `--force` is given) and `LOW` (keep all findings)
85
+ otherwise; an explicitly given floor always wins over the `grey`
86
+ boxing, i.e. e.g. with `LOW`, it acts on all findings of a project
87
+ with `grey` boxing. `ACCEPTED` findings are never suppressed.
88
+ Surviving findings are reported in *descending severity* order
89
+ `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`, keeping the `file`/`line` order
90
+ within the same severity.
91
+
92
+ - `--force`|`-f`:
93
+ Ignore the project boxing entirely: lint a project with `black`
94
+ boxing (which is otherwise not linted at all), and show the full
95
+ unified diffs and the default `LOW` severity floor for a project
96
+ with `grey` boxing (which otherwise shows only condensed one-line
97
+ diffs and defaults to the `MEDIUM` severity floor).
91
98
 
92
99
  - `--include`|`-i`=*aspect*[`,`...]:
93
100
  Restrict the checked specification quality aspects to the given
@@ -159,6 +166,12 @@ Lint the specification, reporting only `MEDIUM` and `HIGH` findings:
159
166
  ❯ /ase-spec-lint -S MEDIUM
160
167
  ```
161
168
 
169
+ Lint the specification regardless of the project boxing:
170
+
171
+ ```text
172
+ ❯ /ase-spec-lint --force
173
+ ```
174
+
162
175
  Lint only the specification files with staged Git changes:
163
176
 
164
177
  ```text