Skip to content

Commit f12ff10

Browse files
committed
feat: [#1] add environment show command specification
- Add complete feature specification for 'show' command in docs/features/environment-status-command/ - Command displays environment information with state-aware details - Includes README, questions (with answers), and detailed specification - Documents 7-phase implementation plan with top-down approach - Estimated duration: 14-22 hours (2-3 days) - E2E test created in Phase 1, evolves throughout implementation - Unit tests written at each phase for incremental validation - Updates roadmap to reflect 'show' command (task 5.1) instead of 'status' - Reserves 'status' for future service health checks Key decisions documented: - Command name: 'show' (display stored data, no remote verification) - Read-only operation (no state modifications) - Human-friendly output first, JSON format as future enhancement - State-aware information (Created, Provisioned, Configured, Running, etc.) - SSH key path included in output for Provisioned state and beyond - Provider-specific information (LXD container ID, Hetzner server details) - Testing strategy: Unit tests + E2E in existing workflow tests - Target completion: January 2026
1 parent cf90faf commit f12ff10

File tree

5 files changed

+1230
-8
lines changed

5 files changed

+1230
-8
lines changed

docs/features/README.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@ Feature documentation serves to:
1313

1414
## 📁 Active Features
1515

16-
| Feature | Status | Priority | Created |
17-
| ------------------------------------------------------------------ | -------------- | -------- | ------------ |
18-
| [JSON Schema Generation](./json-schema-generation/README.md) | 📋 Specified | High | Dec 12, 2025 |
19-
| [Linter Auto-fix](./linter-auto-fix/README.md) | 📋 Specified | Medium | Oct 9, 2025 |
20-
| [Linter Parallel Execution](./linter-parallel-execution/README.md) | ⏸️ Deferred | Low | Oct 9, 2025 |
21-
| [Environment State Management](./environment-state-management/) | 🔄 Refactoring | High | Sept 9, 2025 |
16+
| Feature | Status | Priority | Created |
17+
| -------------------------------------------------------------------- | -------------- | -------- | ------------ |
18+
| [Environment Status Command](./environment-status-command/README.md) | 📋 Specified | Medium | Dec 16, 2025 |
19+
| [JSON Schema Generation](./json-schema-generation/README.md) | 📋 Specified | High | Dec 12, 2025 |
20+
| [Linter Auto-fix](./linter-auto-fix/README.md) | 📋 Specified | Medium | Oct 9, 2025 |
21+
| [Linter Parallel Execution](./linter-parallel-execution/README.md) | ⏸️ Deferred | Low | Oct 9, 2025 |
22+
| [Environment State Management](./environment-state-management/) | 🔄 Refactoring | High | Sept 9, 2025 |
2223

2324
## ✅ Completed Features
2425

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Environment Status Command
2+
3+
A new console command to display environment information with state-aware details.
4+
5+
## 📄 Documents
6+
7+
### [specification.md](./specification.md)
8+
9+
The main feature specification including:
10+
11+
- Overview and problem statement
12+
- Feature goals
13+
- Proposed solution
14+
- Implementation details
15+
- Definition of done
16+
- Testing strategy
17+
18+
### [questions.md](./questions.md)
19+
20+
Clarifying questions that need to be answered before implementation:
21+
22+
- Command naming decision (status vs show)
23+
- Output format requirements
24+
- State-specific information to display
25+
- Future extensibility for JSON output
26+
27+
## 📋 Status
28+
29+
**Current Phase**: Planning
30+
31+
**Completed**:
32+
33+
1. ✅ Create feature specification
34+
2. ✅ Create questions document
35+
3. ⏳ Answer clarifying questions
36+
4. ⏳ Update specification based on answers
37+
5. ⏳ Begin implementation
38+
39+
**Next Steps**:
40+
41+
1. Answer clarifying questions (command name, output format)
42+
2. Refine specification with detailed output format
43+
3. Implement application layer StatusCommand/ShowCommand
44+
4. Implement presentation layer console subcommand
45+
5. Add E2E tests
46+
47+
## 🎯 Quick Summary
48+
49+
Add a new console command to display environment information with state-aware details. The command will show basic information like environment name and current state, with additional details based on the state (e.g., IP address and SSH port for provisioned environments).
50+
51+
**Key Points**:
52+
53+
- **Problem**: Users need visibility into environment state and details without inspecting JSON files
54+
- **Solution**: New console command that loads environment and displays human-friendly information
55+
- **Status**: Planning phase - need to decide on command name and output format
56+
- **Command Name Options**: `status` or `show`
57+
- **Usage**: `torrust-tracker-deployer {status|show} <environment-name>`
58+
59+
## 🔗 Related Documentation
60+
61+
- [Console Commands Overview](../../console-commands.md)
62+
- [Command Architecture](../../codebase-architecture.md)
63+
- [User Guide - Commands](../../user-guide/commands.md)
64+
- [Development Principles](../../development-principles.md)
65+
- [Output Handling Guide](../../contributing/output-handling.md)

0 commit comments

Comments
 (0)