Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
16e9c9b
Add validation-first development documentation and templates
terchris Oct 31, 2025
d32fd41
Improve LLM implementation process based on C# sessions 3 & 4 learnings
terchris Nov 1, 2025
f75e20f
Restore inline instructions to force ROADMAP.md compliance
terchris Nov 3, 2025
c2a1d4e
Update DevContainer installation scripts
terchris Nov 6, 2025
9f00bd0
Update DevContainer installation scripts
terchris Nov 6, 2025
a6f7c8b
Add auto-approval for validation and NuGet commands
terchris Nov 6, 2025
d97e507
Merge branch 'feature/task-management-system'
terchris Nov 6, 2025
4685933
feat: Initialize environmentchange feature branch
terchris Nov 6, 2025
af75fe2
Clean up task templates and remove documentation bloat
terchris Nov 10, 2025
f4b871a
Merge branch 'feature/environmentchange'
terchris Nov 10, 2025
5890a98
feat: Improve validation tools efficiency and fix TypeScript span ble…
terchris Nov 11, 2025
e018e15
Merge pull request #2 from terchris/feature/csharp-implementation
terchris Nov 11, 2025
9c8cd17
docs: clarify .env and run-test.sh as REQUIRED, add Makefile to proje…
terchris Nov 12, 2025
b494d89
Merge branch 'feature/documentation-env-makefile-requirements'
terchris Nov 12, 2025
686250a
feat: add diagnostic functions sovdev_validate_config and sovdev_test…
terchris Nov 13, 2025
706b86d
docs: add diagnostic functions to TypeScript README and usage example
terchris Nov 13, 2025
01e0f08
feat: add diagnostic functions to API spec and .env validation enforc…
terchris Nov 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 52 additions & 5 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,64 @@
"permissions": {
"allow": [
"Bash(tree:*)",
"Bash([ -d python ])",
"Bash([ -d go ])",
"Bash([ -d:*)",
"Bash(mkdir:*)",
"Bash(cp:*)",
"Bash(chmod:*)",
"Bash(./specification/tools/in-devcontainer.sh -e \"cd /workspace/python/test/e2e/company-lookup && ./run-test.sh\")",
"Bash(./specification/tools/in-devcontainer.sh:*)",
"Bash(cat:*)",
"Bash(find:*)",
"Bash(for skill in .claude/skills/*/SKILL.md)",
"Bash(done)",
"Bash(cd /workspace/python/test/e2e/company-lookup && ./run-test.sh)",
"Bash(cd /workspace/typescript/test/e2e/company-lookup && ./run-test.sh)",
"Bash(cd /workspace/go/test/e2e/company-lookup && ./run-test.sh)",
"Bash(cd /workspace/csharp/test/e2e/company-lookup && ./run-test.sh)",
"Bash(cd /workspace/specification/tools && ./run-full-validation.sh:*)",
"Bash(cd /workspace/specification/tools && ./query-loki.sh:*)",
"Bash(cd /workspace/specification/tools && ./query-prometheus.sh:*)",
"Bash(cd /workspace/specification/tools && ./query-tempo.sh:*)",
"Bash(cd /workspace/specification/tools && ./validate-log-format.sh:*)",
"Bash(cd /workspace/specification/llm-work-templates/enforcement && ./check-progress.sh:*)",
"Bash(cd /workspace/specification/llm-work-templates/enforcement && ./init-language-workspace.sh:*)",
"Bash(cd /workspace/.devcontainer/additions && ./install-dev-*.sh)",
"Bash(node --version)",
"Bash(python --version)",
"Bash(go version)",
"Bash(dotnet --version)",
"Bash(php --version)",
"Bash(rustc --version)",
"Skill(implement-language)",
"WebSearch",
"WebFetch(domain:github.com)",
"WebFetch(domain:opentelemetry.io)"
"WebFetch(domain:opentelemetry.io)",
"WebFetch(domain:www.nuget.org)",
"Bash(./query-loki.sh:*)",
"Bash(./query-prometheus.sh:*)",
"Bash(./query-tempo.sh:*)",
"Bash(dotnet new:*)",
"Bash(dotnet add:*)",
"Bash(dotnet add package:*)",
"Bash(make lint-fix:*)",
"Bash(make lint:*)",
"Bash(make build:*)",
"Bash(make test:*)",
"Bash(./run-test.sh:*)",
"Bash(dotnet build:*)",
"Bash(dotnet run)",
"Bash(kubectl exec:*)",
"Bash(./validate-log-format.sh:*)",
"Bash(python3:*)",
"Bash(./run-full-validation.sh:*)",
"Bash(timeout 90 ./run-full-validation.sh:*)",
"Bash(dotnet nuget list:*)",
"Bash(kubectl get:*)",
"Bash(kubectl logs:*)",
"Bash(kubectl run:*)",
"Bash(timeout 30 kubectl run:*)",
"Bash(./query-grafana-prometheus.sh:*)",
"Bash(./query-grafana-loki.sh:*)",
"Bash(./run-grafana-validation.sh:*)",
"Bash(./query-grafana-tempo.sh:*)"
],
"deny": [],
"ask": []
Expand Down
138 changes: 52 additions & 86 deletions .claude/skills/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ These skills codify the systematic implementation guidance from the `specificati
**Purpose**: Systematic 7-phase implementation guidance following the specification checklist

**Key Features**:
- Automatically references critical documents (tools/README.md, 10-otel-sdk.md, 11-llm-checklist-template.md)
- Automatically references critical documents (tools/README.md, llm-work-templates/research-otel-sdk-guide.md, llm-work-templates/ROADMAP-template.md)
- Enforces Phase 0 (pre-implementation setup) completion before coding
- Updates checklist systematically as work progresses
- Prevents "complete" claims until ALL validation criteria met
Expand Down Expand Up @@ -53,7 +53,7 @@ These skills codify the systematic implementation guidance from the `specificati
**Key Features**:
- Follows specification/09-development-loop.md workflow
- Enforces "validate log files FIRST" (instant feedback)
- Uses `in-devcontainer.sh` for all command execution (LLM mode)
- Executes commands directly (LLM runs inside DevContainer)
- Handles build step when needed
- Only validates OTLP after file logs pass
- References validation tools documentation
Expand Down Expand Up @@ -124,54 +124,61 @@ This pattern:
- ✅ Points to complete details in _SHARED.md
- ✅ Makes maintenance easier

## Strategic Duplication Policy
## Skills as Routers Philosophy (v3.0)

**Some duplication is intentional and documented for LLM execution convenience.**
**Skills do NOT duplicate content. Skills are minimal routers.**

### What We Duplicate
### What Skills Contain

Validation commands (bash commands) appear in BOTH:
- `specification/tools/README.md` (authoritative documentation)
- Skills (for immediate LLM execution)
Skills contain:
- ✅ **WHEN** to use which documentation (intent matching)
- ✅ **WHERE** to find authoritative information (file paths)
- ✅ **WHICH** section to read (section names)
- ✅ **Minimal actionable steps** (initialize, read instructions)
- ❌ **NOT** meta commentary, examples, or duplicated procedures

### Why We Duplicate
### Why Minimal

**Purpose:** Skills guide immediate action. When Claude Code sees a command in a skill, it should execute immediately without context-switching to another file.
**Rationale:** LLMs can read files instantly. No benefit to duplicating content or explaining WHY the system works.

**Philosophy:**
- **Specification documents** = Reference documentation (should have NO duplication)
- **Skills** = Action workflows (can duplicate commands for usability)
**Benefits:**
- ✅ **Single source of truth** - Update once, not in multiple places
- ✅ **Less context waste** - Read instructions once in the actual document
- ✅ **No sync issues** - Can't have outdated duplicated content
- ✅ **Easier maintenance** - Update specification, done
- ✅ **Clearer intent** - Skills say WHEN/WHERE, specs say HOW

### How We Mark Duplication
### Skills Updated to v3.0

Every duplicated command section includes an HTML comment:
```html
<!-- Commands below duplicated from specification/tools/README.md for immediate LLM execution convenience -->
```
All skills radically simplified (2025-10-31):
- ✅ `implement-language` - 330 → 90 lines (72% reduction)
- ✅ `validation-tools` - 133 → 67 lines (50% reduction)
- ✅ `development-loop` - 143 → 83 lines (42% reduction)
- ✅ `validate-implementation` - 97 → 84 lines (13% reduction)

This makes the duplication:
- ✅ **Visible**: Anyone reading the skill sees it's duplicated
- ✅ **Intentional**: Clearly marked as design decision, not oversight
- ✅ **Traceable**: References the authoritative source
**Total: 703 → 324 lines (54% overall reduction, -379 lines removed)**

### Maintenance Process
**Removed:**
- Meta commentary about system design
- Duplicated workflow procedures
- Example walkthroughs
- Reference document lists
- Historical version information
- Success criteria (belongs in specs)
- Descriptions of what's IN files (just read them)

When updating commands in `specification/tools/README.md`:
1. Check if the command is duplicated in skills (look for HTML comments)
2. Update the duplicated commands in skills to match
3. Skills with duplicated commands:
- `implement-language/SKILL.md`: Build, test, validation commands
- `development-loop/SKILL.md`: Development loop commands
- `validate-implementation/SKILL.md`: Quick validation commands
- `validation-tools/SKILL.md`: 5 common commands
**Kept:**
- Minimal actionable steps (initialize, read)
- Pointers to authoritative documentation
- Troubleshooting routing (where to look for help)

### Lines Duplicated
### Maintenance

- **Estimated:** ~100 lines across all skills
- **Trade-off:** Accepted for LLM execution convenience
- **Alternative considered:** Centralize commands (rejected - too slow for LLM workflow)
When updating specifications:
1. Update the specification file (single source of truth)
2. Done - skills just point to specifications

**This duplication is intentional, documented, and maintained.**
**No duplication to maintain.**

## Benefits

Expand Down Expand Up @@ -202,8 +209,9 @@ These skills **do not replace** the specification - they **guide** you through i
|------------------------|---------------|---------|
| `specification/README.md` | implement-language | Overall guidance |
| **`specification/tools/README.md`** | **ALL skills** | **Complete validation tool reference** |
| `specification/11-llm-checklist-template.md` | implement-language | Systematic checklist |
| `specification/10-otel-sdk.md` | implement-language | OTEL SDK differences |
| `specification/llm-work-templates/ROADMAP-template.md` | implement-language | 13-task implementation workflow |
| `specification/llm-work-templates/validation-sequence.md` | validate-implementation | 8-step validation sequence |
| `specification/llm-work-templates/research-otel-sdk-guide.md` | implement-language | OTEL SDK differences |
| `specification/09-development-loop.md` | development-loop | Iterative workflow |
| `specification/01-api-contract.md` | implement-language | API requirements |

Expand All @@ -213,61 +221,19 @@ These skills **do not replace** the specification - they **guide** you through i

If not using Claude Code, you can still implement sovdev-logger manually by following:
1. `specification/README.md` - Quick start guide
2. `specification/11-llm-checklist-template.md` - Systematic checklist
3. `specification/09-development-loop.md` - Development workflow
4. `specification/tools/README.md` - Complete validation tool reference
2. `specification/llm-work-templates/ROADMAP-template.md` - 13-task workflow
3. `specification/llm-work-templates/validation-sequence.md` - 8-step validation
4. `specification/09-development-loop.md` - Development workflow
5. `specification/tools/README.md` - Complete validation tool reference

The skills simply make this process automatic and harder to skip steps.

## Skill Development

**Created**: 2025-10-21
**Version**: 1.4.0
**Version**: 3.0.0
**Status**: Production

**Recent Updates**:

**v1.4.0** (2025-10-28):
- **Checklist Workflow Clarity**: Improved implement-language skill
- Added prominent "Your Working Checklist" section immediately after directory restrictions
- Clarified that checklist copy is the FIRST concrete action
- Emphasized checklist is working plan updated throughout implementation
- Removed duplicate "Follow the Checklist" section from Phase 0
- Updated implement-language skill to version 1.3.0

**v1.3.0** (2025-10-27):
- **Phase 3 (Strategic Duplication)**: Documented intentional command duplication
- Added HTML comments marking duplicated commands (source: specification/tools/README.md)
- Created Strategic Duplication Policy in README
- Accepted ~100 lines of command duplication for LLM execution convenience
- **Phase 1 (Standardization)**: Added metadata and standardized references
- Added version, last_updated, references to all skill frontmatter
- Standardized 14 cross-reference patterns to consistent **See:** format
- All skills now at version 1.2.0 with clear dependencies listed

**v1.2.0** (2025-10-27):
- **Phase 5 (Checklist Alignment)**: Fixed validation sequence inconsistency
- implement-language now references 8-step sequence from checklist Phase 5
- validation-tools now provides quick examples for common commands
- All skills consistently reference checklist Phase 5 as authoritative
- **Phase 2 (Content Deduplication)**: Created shared components pattern
- Added `_SHARED.md` with common content (Directory Restrictions, Execute Commands warning)
- Updated all 4 skills to reference shared components
- Eliminated ~95 lines of duplication across skills

**v1.1.0** (2025-10-21):
- Added `validation-tools` skill for tool documentation guidance
- Updated all skills to reference `specification/tools/README.md` instead of duplicating content
- Added "Execute Commands, Don't Describe Them" sections to all skills
- Emphasized single source of truth principle

**Maintenance**:
- **Common content**: Update `_SHARED.md` (applies to all skills automatically)
- **Duplicated commands**: When updating `specification/tools/README.md`, check HTML comments in skills and update matching commands
- **Specification changes**: Skills should be updated when specification documents change
- **Testing**: Test skills with each new language implementation
- **Feedback**: Gather feedback and improve skill guidance
- **Philosophy**: Keep skills as action guides (can duplicate for usability), not encyclopedias
**Architecture**: Skills are routers that point to authoritative documentation. No command duplication.

## Getting Help

Expand Down
4 changes: 2 additions & 2 deletions .claude/skills/_SHARED.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ When implementing or validating sovdev-logger, follow these directory access res

| Reference | Full Path | Purpose |
|-----------|-----------|---------|
| Validation Sequence | `specification/11-llm-checklist-template.md` → Phase 5 | Authoritative 8-step validation workflow |
| Validation Sequence | `specification/llm-work-templates/validation-sequence.md` | Authoritative 8-step validation workflow |
| Tool Documentation | `specification/tools/README.md` | Complete reference for all validation and query tools |
| OTEL SDK Differences | `specification/10-otel-sdk.md` | Language-specific SDK implementation guidance |
| OTEL SDK Differences | `specification/llm-work-templates/research-otel-sdk-guide.md` | Language-specific SDK implementation guidance |
| Development Loop | `specification/09-development-loop.md` | Iterative development workflow |
| API Contract | `specification/01-api-contract.md` | 8 API functions to implement |
| Design Principles | `specification/00-design-principles.md` | Core philosophy |
Expand Down
Loading
Loading