markdown_exec 3.5.1 → 3.5.2

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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/.ai-agent-instructions +54 -0
  3. data/.cursorrules +198 -0
  4. data/.rubocop.wide.yml +5 -0
  5. data/.rubocop.yml +7 -2
  6. data/CHANGELOG.md +12 -1
  7. data/Gemfile.lock +1 -1
  8. data/Rakefile +2 -0
  9. data/ai-principles.md +516 -0
  10. data/architecture-decisions.md +190 -0
  11. data/bats/block-hide.bats +1 -1
  12. data/bats/block-type-bash.bats +5 -5
  13. data/bats/block-type-link.bats +1 -1
  14. data/bats/block-type-opts.bats +3 -3
  15. data/bats/block-type-port.bats +2 -2
  16. data/bats/block-type-shell-require-ux.bats +2 -2
  17. data/bats/block-type-ux-allowed.bats +4 -4
  18. data/bats/block-type-ux-auto.bats +1 -1
  19. data/bats/block-type-ux-chained.bats +1 -1
  20. data/bats/block-type-ux-default.bats +1 -1
  21. data/bats/block-type-ux-echo-hash-transform.bats +1 -1
  22. data/bats/block-type-ux-echo-hash.bats +2 -2
  23. data/bats/block-type-ux-echo.bats +3 -3
  24. data/bats/block-type-ux-exec-hash-transform.bats +1 -1
  25. data/bats/block-type-ux-exec-hash.bats +2 -2
  26. data/bats/block-type-ux-exec.bats +1 -1
  27. data/bats/block-type-ux-force.bats +1 -1
  28. data/bats/block-type-ux-formats.bats +1 -1
  29. data/bats/block-type-ux-hidden.bats +1 -1
  30. data/bats/block-type-ux-invalid.bats +1 -1
  31. data/bats/block-type-ux-readonly.bats +1 -1
  32. data/bats/block-type-ux-require-chained.bats +2 -2
  33. data/bats/block-type-ux-require-context.bats +2 -2
  34. data/bats/block-type-ux-require.bats +2 -2
  35. data/bats/block-type-ux-required-variables.bats +1 -1
  36. data/bats/block-type-ux-row-format.bats +1 -1
  37. data/bats/block-type-ux-sources.bats +4 -4
  38. data/bats/block-type-ux-transform.bats +1 -1
  39. data/bats/block-type-vars.bats +3 -3
  40. data/bats/border.bats +1 -1
  41. data/bats/cli.bats +11 -11
  42. data/bats/command-substitution-options.bats +2 -2
  43. data/bats/command-substitution.bats +1 -1
  44. data/bats/document-shell.bats +1 -1
  45. data/bats/history.bats +5 -5
  46. data/bats/import-conflict.bats +1 -1
  47. data/bats/import-directive-line-continuation.bats +1 -1
  48. data/bats/import-directive-parameter-symbols.bats +1 -1
  49. data/bats/import-duplicates.bats +6 -6
  50. data/bats/import-parameter-symbols.bats +1 -1
  51. data/bats/import-with-text-substitution.bats +1 -1
  52. data/bats/import.bats +3 -3
  53. data/bats/indented-block-type-vars.bats +1 -1
  54. data/bats/indented-multi-line-output.bats +1 -1
  55. data/bats/line-decor-dynamic.bats +1 -1
  56. data/bats/line-wrapping.bats +1 -1
  57. data/bats/load-vars-state-demo.bats +4 -4
  58. data/bats/markup.bats +4 -4
  59. data/bats/mde.bats +4 -4
  60. data/bats/option-expansion.bats +1 -1
  61. data/bats/options-collapse.bats +4 -4
  62. data/bats/options.bats +47 -17
  63. data/bats/plain.bats +1 -1
  64. data/bats/publish.bats +2 -2
  65. data/bats/table-column-truncate.bats +1 -1
  66. data/bats/table.bats +2 -2
  67. data/bats/variable-expansion-multiline.bats +1 -1
  68. data/bats/variable-expansion.bats +6 -6
  69. data/conversation-template.md +611 -0
  70. data/docs/block-execution-modes.md +177 -0
  71. data/docs/block-filtering.md +252 -0
  72. data/docs/block-naming-patterns.md +210 -0
  73. data/docs/block-scanning-patterns.md +248 -0
  74. data/docs/cli-reference.md +370 -0
  75. data/docs/dev/block-hide.md +1 -1
  76. data/docs/dev/block-type-ux-transform.md +5 -4
  77. data/docs/dev/print_bytes.md +3 -0
  78. data/docs/dev/shebang.md +6 -0
  79. data/docs/docker-testing.md +5 -0
  80. data/docs/execution-control.md +384 -0
  81. data/docs/getting-started.md +209 -0
  82. data/docs/import-options.md +391 -0
  83. data/docs/tab-completion.md +7 -0
  84. data/docs/ux-blocks.md +376 -0
  85. data/examples/linked1.md +8 -1
  86. data/implementation-decisions.md +212 -0
  87. data/lib/cached_nested_file_reader.rb +138 -1
  88. data/lib/command_result.rb +27 -6
  89. data/lib/executed_shell_command.rb +512 -0
  90. data/lib/filter.rb +7 -7
  91. data/lib/hash_delegator.rb +403 -350
  92. data/lib/link_history.rb +22 -11
  93. data/lib/markdown_exec/version.rb +1 -1
  94. data/lib/mdoc.rb +103 -44
  95. data/lib/menu.src.yml +110 -83
  96. data/lib/menu.yml +149 -83
  97. data/lib/transformed_shell_command.rb +449 -0
  98. data/lib/wl.rb +15 -0
  99. data/lib/ww.rb +16 -5
  100. data/requirements.md +111 -0
  101. data/semantic-tokens.md +132 -0
  102. data/tasks.md +69 -0
  103. metadata +26 -4
  104. data/docs/ux-blocks-examples.md +0 -120
  105. data/docs/ux-blocks-init-act.md +0 -100
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6becba5a0ff94fb60399da0fc99248fff83905def9c65e4a8e1ae9c597652036
4
- data.tar.gz: 98f0d4ad3764fec26b4ed8f1bce1904af1f350853b3e2678847f0557b381e8bf
3
+ metadata.gz: 70772e4552a37222c8f9655c19d0c4938ef57a2abc786987d4b8220608aeb3b5
4
+ data.tar.gz: 7afe1c005a8d079e0d55ba36ccfd83e669665d038182c2d465e027ba5e7f46f7
5
5
  SHA512:
6
- metadata.gz: b2d1d60bcf1fe258a8be76893b070ab418563e27923c9e8a4370cd04fa5e0d421732c3c51e76e596a5d492885170270437916035530f64ba2e99a98d215bd908
7
- data.tar.gz: 306d802cfcfc5bfa9460e2d58a69ac4f9ac0c058a28859243a237682d2622549277ff6f8515f84c51b2a2ede229c3f95eaa9a0ce5b9dbde98bfc2ad862c9aa8f
6
+ metadata.gz: b5ce74d1d56a732a6877d6dca7fd188e33b87fdbeccc6f3762281edfef9d53c525bcefb293931ec1cefa0e9176e45ef83d9a0c285589051169c15c8f2305a07d
7
+ data.tar.gz: 3798f4dfb87aeabb8e450bbb8790a72903a181f1171028042725f6231b90cc59605a88445c59a9e5178789a6b7d456060407ace48639f8b11b2b1ec385b8c23b
@@ -0,0 +1,54 @@
1
+ # AI Agent Instructions - Read First!
2
+
3
+ ## ⚠️ CRITICAL: Mandatory Acknowledgment
4
+
5
+ **YOU MUST** preface EVERY response with:
6
+
7
+ **"Observing AI principles!"**
8
+
9
+ This confirms you have read and will follow the AI-First Principles.
10
+
11
+ ## 📋 Required Actions at Start of Each Session
12
+
13
+ 1. **Acknowledge**: Preface response with "Observing AI principles!"
14
+ 2. **Read**: `ai-principles.md` - Complete principles and process guide
15
+ 3. **Review**: `semantic-tokens.md` - Token registry
16
+ 4. **Check**: `tasks.md` - Active task tracking
17
+ 5. **Understand**: Priority levels (P0 > P1 > P2 > P3)
18
+
19
+ ## 🎯 Core Requirements
20
+
21
+ - Use semantic tokens `[REQ:*]`, `[ARCH:*]`, `[IMPL:*]` throughout
22
+ - Expand requirements into pseudo-code BEFORE coding
23
+ - Break work into trackable tasks with priorities
24
+ - Cross-reference everything using semantic tokens
25
+ - Follow priority order: Tests > Code > Basic Functions > Infrastructure
26
+
27
+ ## 📚 Key Files
28
+
29
+ - `ai-principles.md` - **READ THIS FIRST**
30
+ - `requirements.md` - Requirements with `[REQ:*]` tokens
31
+ - `architecture-decisions.md` - **Semantic-token-linked architecture decisions dependent on requirements**
32
+ - Records all `[ARCH:*]` tokens
33
+ - Cross-references `[REQ:*]` tokens
34
+ - `implementation-decisions.md` - **Semantic-token-linked implementation decisions dependent on architecture and requirements**
35
+ - Records all `[IMPL:*]` tokens
36
+ - Cross-references both `[ARCH:*]` and `[REQ:*]` tokens
37
+ - `semantic-tokens.md` - Token registry
38
+ - `tasks.md` - Task tracking
39
+ - `.cursorrules` - Cursor IDE rules (auto-loaded)
40
+
41
+ ## ✅ Example Response Format
42
+
43
+ ```
44
+ Observing AI principles!
45
+
46
+ I have read ai-principles.md and will follow all documented processes.
47
+
48
+ [Your response here using semantic tokens and following the process]
49
+ ```
50
+
51
+ ---
52
+
53
+ **This file is a reminder. The complete rules are in `ai-principles.md` and `.cursorrules`.**
54
+
data/.cursorrules ADDED
@@ -0,0 +1,198 @@
1
+ # Cursor AI Agent Rules for STDD Projects
2
+
3
+ **STDD Methodology Version**: 1.0.0
4
+
5
+ ## 🎯 Semantic Token-Driven Development (STDD)
6
+
7
+ This project follows **Semantic Token-Driven Development (STDD)**, where semantic tokens (`[REQ:*]`, `[ARCH:*]`, `[IMPL:*]`) are the central mechanism for preserving intent throughout the development lifecycle. Semantic tokens create a traceable chain of intent from requirements → architecture → implementation → tests → code, ensuring the original purpose and reasoning are never lost.
8
+
9
+ ## ⚠️ MANDATORY: AI Principles Acknowledgment
10
+
11
+ **YOU MUST** acknowledge that you have read and will follow the AI principles at the start of EVERY response by prefacing with:
12
+
13
+ **"Observing AI principles!"**
14
+
15
+ Then proceed to:
16
+ 1. Read `ai-principles.md` if not already read in this session
17
+ 2. Check `semantic-tokens.md` for existing tokens
18
+ 3. Review `tasks.md` for active tasks
19
+ 4. Follow all principles throughout your response
20
+
21
+ ## 🎯 Core Principles
22
+
23
+ 1. **Always Reference ai-principles.md**
24
+ - Read `ai-principles.md` at the start of each session
25
+ - Acknowledge with "Observing AI principles!" at the start of every response
26
+ - Follow the documented development process
27
+ - Use semantic tokens consistently
28
+
29
+ 2. **Semantic Token System** (Core to STDD)
30
+ - Semantic tokens are the mechanism that preserves intent throughout the development lifecycle
31
+ - Use semantic tokens for all cross-referencing
32
+ - Format: `[TYPE:IDENTIFIER]` (e.g., `[REQ:MONITOR]`, `[IMPL:ASYNC_EXECUTION]`)
33
+ - Reference tokens in code comments, test names, and documentation
34
+ - Update `semantic-tokens.md` when creating new tokens
35
+ - Maintain traceability: Requirements → Architecture → Implementation → Tests → Code
36
+
37
+ 3. **Development Process**
38
+ - **Phase 1**: Expand requirements into pseudo-code and decisions (NO code changes)
39
+ - **Phase 2**: Break down into trackable tasks with priorities
40
+ - **Phase 3**: Implement tasks, starting with highest priority
41
+ - Always cross-reference using semantic tokens
42
+
43
+ 4. **Task Management**
44
+ - Break work into trackable tasks in `tasks.md`
45
+ - Assign priorities: P0 (Critical) > P1 (Important) > P2 (Nice-to-have) > P3 (Future)
46
+ - Remove subtasks when parent task completes
47
+ - Always include semantic token references
48
+
49
+ 5. **Priority Order**
50
+ - **Most Important**: Tests, Code, Basic Functions
51
+ - **Least Important**: Environment Orchestration, Enhanced Security, Automated Deployment
52
+
53
+ ## 📝 Documentation Requirements
54
+
55
+ ### ⚠️ CRITICAL: Documentation is MANDATORY, Not Optional
56
+
57
+ **Documentation updates are REQUIRED at every stage of development. They are not optional or deferrable.**
58
+
59
+ ### Required Sections in All Documentation
60
+
61
+ 1. **Requirements** - with `[REQ:*]` tokens (in `requirements.md`)
62
+ 2. **Architecture Decisions** - with `[ARCH:*]` tokens (in `architecture-decisions.md`)
63
+ - **MUST** be recorded in `architecture-decisions.md` IMMEDIATELY when made
64
+ - **MUST** cross-reference `[REQ:*]` tokens
65
+ - Architecture decisions are dependent on requirements
66
+ - **DO NOT** defer architecture documentation - record it as you make decisions
67
+ 3. **Implementation Decisions** - with `[IMPL:*]` tokens (in `implementation-decisions.md`)
68
+ - **MUST** be recorded in `implementation-decisions.md` IMMEDIATELY when made
69
+ - **MUST** cross-reference both `[ARCH:*]` and `[REQ:*]` tokens
70
+ - Implementation decisions are dependent on both architecture and requirements
71
+ - **DO NOT** defer implementation documentation - record it as you make decisions
72
+ 4. **Semantic Token Registry** - maintained in `semantic-tokens.md`
73
+ - **MUST** be updated immediately when creating new tokens
74
+ 5. **Task Planning** - maintained in `tasks.md`
75
+ - **MUST** be updated when planning new work
76
+ - **MUST** be updated when completing tasks
77
+ - **MUST** include semantic token references
78
+ 6. **Code References** - semantic tokens in code comments
79
+ 7. **Test References** - semantic tokens in test names/comments
80
+
81
+ ### Documentation Update Checklist (MANDATORY)
82
+
83
+ **When making ANY architectural decision:**
84
+ - [ ] Record in `architecture-decisions.md` with `[ARCH:*]` token
85
+ - [ ] Cross-reference relevant `[REQ:*]` tokens
86
+ - [ ] Update `semantic-tokens.md` if new token created
87
+
88
+ **When making ANY implementation decision:**
89
+ - [ ] Record in `implementation-decisions.md` with `[IMPL:*]` token
90
+ - [ ] Cross-reference relevant `[ARCH:*]` and `[REQ:*]` tokens
91
+ - [ ] Update `semantic-tokens.md` if new token created
92
+
93
+ **When planning new work:**
94
+ - [ ] Create tasks in `tasks.md` BEFORE starting implementation
95
+ - [ ] Assign priorities to all tasks
96
+ - [ ] Include semantic token references in task descriptions
97
+ - [ ] Break down into subtasks if needed
98
+
99
+ **When completing work:**
100
+ - [ ] Mark tasks complete in `tasks.md`
101
+ - [ ] Remove completed subtasks
102
+ - [ ] Verify all documentation is up-to-date
103
+ - [ ] Ensure all semantic tokens are documented
104
+
105
+ ### Cross-Reference Format
106
+
107
+ When referencing tokens:
108
+ ```go
109
+ // [REQ:DUPLICATE_PREVENTION] Skip if text matches lastText
110
+ // [IMPL:DUPLICATE_PREVENTION] [REQ:DUPLICATE_PREVENTION]
111
+ ```
112
+
113
+ Test names:
114
+ ```go
115
+ func TestDuplicatePrevention_REQ_DUPLICATE_PREVENTION(t *testing.T)
116
+ ```
117
+
118
+ ## 🔄 Before Starting Work
119
+
120
+ 1. **MANDATORY**: Read `ai-principles.md`
121
+ 2. **MANDATORY**: Check `semantic-tokens.md` for existing tokens
122
+ 3. **MANDATORY**: Review `tasks.md` for active tasks
123
+ 4. **MANDATORY**: Review `architecture-decisions.md` for existing architecture decisions
124
+ 5. **MANDATORY**: Review `implementation-decisions.md` for existing implementation decisions
125
+ 6. Understand priority levels
126
+ 7. **MANDATORY**: Plan work in `tasks.md` BEFORE writing any code
127
+
128
+ ## ⚙️ During Work
129
+
130
+ 1. Use semantic tokens in all code comments
131
+ 2. Use semantic tokens in test names/comments
132
+ 3. Cross-reference: Requirements → Architecture → Implementation → Tests
133
+ 4. **MANDATORY**: Break work into trackable tasks in `tasks.md` BEFORE starting implementation
134
+ 5. **MANDATORY**: Assign appropriate priorities to all tasks
135
+ 6. **MANDATORY**: Update documentation AS YOU WORK:
136
+ - Record architecture decisions in `architecture-decisions.md` immediately when made
137
+ - Record implementation decisions in `implementation-decisions.md` immediately when made
138
+ - Update `tasks.md` when planning new work or completing tasks
139
+ - Update `semantic-tokens.md` when creating new tokens
140
+ - **DO NOT** defer documentation updates until the end
141
+
142
+ ## ✅ After Completing Work
143
+
144
+ 1. **MANDATORY**: All semantic tokens documented in `semantic-tokens.md`
145
+ 2. **MANDATORY**: Documentation updated with implementation status:
146
+ - `architecture-decisions.md` updated with any new `[ARCH:*]` decisions
147
+ - `implementation-decisions.md` updated with any new `[IMPL:*]` decisions
148
+ - Both must cross-reference `[REQ:*]` tokens
149
+ 3. **MANDATORY**: Tests reference semantic tokens
150
+ 4. **MANDATORY**: Tasks marked complete in `tasks.md`
151
+ 5. **MANDATORY**: Subtasks removed from completed tasks
152
+ 6. **MANDATORY**: All documentation reflects current state (no stale information)
153
+
154
+ ## 🚫 What NOT to Do
155
+
156
+ - Don't write code before expanding requirements into pseudo-code
157
+ - Don't skip semantic token cross-referencing
158
+ - Don't create tasks without priorities
159
+ - Don't leave subtasks after parent task completes
160
+ - Don't implement P2/P3 features before P0/P1 are complete
161
+
162
+ ## 📚 Key Files
163
+
164
+ **Note**: These file names refer to your project's files. Copy the corresponding `.template.md` files from the STDD repository to your project.
165
+
166
+ - `ai-principles.md` - Complete principles and process guide (reference from STDD repository)
167
+ - `requirements.md` - Requirements with `[REQ:*]` tokens (copy from `requirements.template.md`)
168
+ - `architecture-decisions.md` - **Semantic-token-linked record of architecture decisions dependent on requirements** (copy from `architecture-decisions.template.md`)
169
+ - All `[ARCH:*]` tokens must be documented here
170
+ - Must cross-reference `[REQ:*]` tokens
171
+ - `implementation-decisions.md` - **Semantic-token-linked record of implementation decisions dependent on architecture and requirements** (copy from `implementation-decisions.template.md`)
172
+ - All `[IMPL:*]` tokens must be documented here
173
+ - Must cross-reference both `[ARCH:*]` and `[REQ:*]` tokens
174
+ - `semantic-tokens.md` - Central registry of all tokens (copy from `semantic-tokens.template.md`)
175
+ - `tasks.md` - Active task tracking (copy from `tasks.template.md`)
176
+
177
+ ## 🎯 Example Workflow
178
+
179
+ 1. **User Request**: "Add disk space checking"
180
+ 2. **AI Response (Planning Phase - NO CODE YET)**:
181
+ - Creates `[REQ:DISK_SPACE_CHECK]` token in `requirements.md`
182
+ - Expands into pseudo-code and decisions
183
+ - **IMMEDIATELY** documents architecture decisions in `architecture-decisions.md` with `[ARCH:*]` tokens cross-referencing `[REQ:DISK_SPACE_CHECK]`
184
+ - **IMMEDIATELY** documents implementation decisions in `implementation-decisions.md` with `[IMPL:*]` tokens cross-referencing both `[ARCH:*]` and `[REQ:*]` tokens
185
+ - **IMMEDIATELY** updates `semantic-tokens.md` with all new tokens
186
+ - **IMMEDIATELY** creates tasks in `tasks.md` with P1 priority and semantic token references
187
+ - **NO code changes yet**
188
+ 3. **User Approval**: User reviews and approves planning documents
189
+ 4. **Implementation Phase**:
190
+ - AI implements tasks, starting with highest priority
191
+ - **DURING implementation**: Updates documentation as decisions are made or refined
192
+ - **DURING implementation**: Updates `tasks.md` as subtasks are completed
193
+ 5. **Completion Phase**:
194
+ - **MANDATORY**: Verifies all documentation is up-to-date
195
+ - **MANDATORY**: Marks tasks complete in `tasks.md`
196
+ - **MANDATORY**: Removes completed subtasks
197
+ - **MANDATORY**: Ensures all semantic tokens are documented
198
+
data/.rubocop.wide.yml ADDED
@@ -0,0 +1,5 @@
1
+ inherit_from:
2
+ - .rubocop.yml
3
+
4
+ Layout/LineLength:
5
+ Max: 200
data/.rubocop.yml CHANGED
@@ -14,10 +14,15 @@ Layout/LineContinuationLeadingSpace:
14
14
  Enabled: false
15
15
 
16
16
  Layout/LineLength:
17
+ AllowHeredoc: true # optional
18
+ AllowURI: true # optional
19
+ AllowedPatterns:
20
+ - '^\s*#'
21
+ - '^[^#]*#'
17
22
  # Enabled: false
23
+ # IgnoreComments: true # ← THIS is what you want
24
+ IgnoreCopDirectives: true # optional, but useful
18
25
  Max: 80
19
- # Max: 96
20
- # Max: 120
21
26
 
22
27
  Lint/Debugger:
23
28
  Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.5.2]
4
+
5
+ ### Added
6
+
7
+ - Option for hiding shebang lines.
8
+
9
+ ### Changed
10
+
11
+ - Fix inherited code from activated UX blocks.
12
+ - Improve BATS test names.
13
+
3
14
  ## [3.5.1] - 2025-11-14
4
15
 
5
16
  ### Added
@@ -983,7 +994,7 @@ e.g. `MDE_OUTPUT_VIEWER_OPTIONS="-a '/Applications/Sublime Text.app'" mde --sele
983
994
 
984
995
  | YAML Name | Environment Variable | Default |
985
996
  | :--- | :--- | :--- |
986
- | block_name_hidden_match | MDE_BLOCK_NAME_HIDDEN_MATCH | `^\(.+\)$` |
997
+ | block_name_hide_custom_match | MDE_BLOCK_NAME_HIDE_CUSTOM_MATCH | `^\(.+\)$` |
987
998
  | block_name_match | MDE_BLOCK_NAME_MATCH | `:(?<title>\S+)( \|$)` |
988
999
  | block_required_scan | MDE_BLOCK_REQUIRED_SCAN | `\+\S+` |
989
1000
  | fenced_start_and_end_regex | MDE_FENCED_START_AND_END_REGEX | ``^`{3,}`` |
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- markdown_exec (3.5.1)
4
+ markdown_exec (3.5.2)
5
5
  clipboard (~> 1.3.6)
6
6
  open3 (~> 0.1.1)
7
7
  optparse (~> 0.1.1)
data/Rakefile CHANGED
@@ -138,6 +138,7 @@ task :minitest do
138
138
  './lib/collapser.rb --verbose',
139
139
  './lib/directory_searcher.rb --verbose',
140
140
  './lib/evaluate_shell_expressions.rb --verbose',
141
+ './lib/executed_shell_command.rb --verbose',
141
142
  './lib/fcb.rb --verbose',
142
143
  './lib/filter.rb --verbose',
143
144
  './lib/find_files.rb',
@@ -155,6 +156,7 @@ task :minitest do
155
156
  './lib/saved_files_matcher.rb --verbose',
156
157
  './lib/table_extractor.rb --verbose',
157
158
  './lib/text_analyzer.rb --verbose',
159
+ './lib/transformed_shell_command.rb --verbose',
158
160
  './lib/ww.rb --verbose'
159
161
  ]
160
162