@tgoodington/intuition 8.1.3 → 9.2.1
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.
- package/README.md +9 -9
- package/docs/project_notes/.project-memory-state.json +100 -0
- package/docs/project_notes/branches/.gitkeep +0 -0
- package/docs/project_notes/bugs.md +41 -0
- package/docs/project_notes/decisions.md +147 -0
- package/docs/project_notes/issues.md +101 -0
- package/docs/project_notes/key_facts.md +88 -0
- package/docs/project_notes/trunk/.gitkeep +0 -0
- package/docs/project_notes/trunk/.planning_research/decision_file_naming.md +15 -0
- package/docs/project_notes/trunk/.planning_research/decisions_log.md +32 -0
- package/docs/project_notes/trunk/.planning_research/orientation.md +51 -0
- package/docs/project_notes/trunk/audit/plan-rename-hitlist.md +654 -0
- package/docs/project_notes/trunk/blueprint-conflicts.md +109 -0
- package/docs/project_notes/trunk/blueprints/database-architect.md +416 -0
- package/docs/project_notes/trunk/blueprints/devops-infrastructure.md +514 -0
- package/docs/project_notes/trunk/blueprints/technical-writer.md +788 -0
- package/docs/project_notes/trunk/build_brief.md +119 -0
- package/docs/project_notes/trunk/build_report.md +250 -0
- package/docs/project_notes/trunk/detail_brief.md +94 -0
- package/docs/project_notes/trunk/plan.md +182 -0
- package/docs/project_notes/trunk/planning_brief.md +96 -0
- package/docs/project_notes/trunk/prompt_brief.md +60 -0
- package/docs/project_notes/trunk/prompt_output.json +98 -0
- package/docs/project_notes/trunk/scratch/database-architect-decisions.json +72 -0
- package/docs/project_notes/trunk/scratch/database-architect-research-plan.md +10 -0
- package/docs/project_notes/trunk/scratch/database-architect-stage1.md +226 -0
- package/docs/project_notes/trunk/scratch/devops-infrastructure-decisions.json +71 -0
- package/docs/project_notes/trunk/scratch/devops-infrastructure-research-plan.md +7 -0
- package/docs/project_notes/trunk/scratch/devops-infrastructure-stage1.md +164 -0
- package/docs/project_notes/trunk/scratch/technical-writer-decisions.json +88 -0
- package/docs/project_notes/trunk/scratch/technical-writer-research-plan.md +7 -0
- package/docs/project_notes/trunk/scratch/technical-writer-stage1.md +266 -0
- package/docs/project_notes/trunk/team_assignment.json +108 -0
- package/docs/project_notes/trunk/test_brief.md +75 -0
- package/docs/project_notes/trunk/test_report.md +26 -0
- package/docs/project_notes/trunk/verification/devops-infrastructure-verification.md +172 -0
- package/docs/v9/decision-framework-direction.md +142 -0
- package/docs/v9/decision-framework-implementation.md +114 -0
- package/docs/v9/domain-adaptive-team-architecture.md +1016 -0
- package/docs/v9/test/SESSION_SUMMARY.md +117 -0
- package/docs/v9/test/TEST_PLAN.md +119 -0
- package/docs/v9/test/blueprints/legal-analyst.md +166 -0
- package/docs/v9/test/output/07_cover_letter.md +41 -0
- package/docs/v9/test/phase2/mock_plan.md +89 -0
- package/docs/v9/test/phase2/producers.json +32 -0
- package/docs/v9/test/phase2/specialists/database-architect.specialist.md +10 -0
- package/docs/v9/test/phase2/specialists/financial-analyst.specialist.md +10 -0
- package/docs/v9/test/phase2/specialists/legal-analyst.specialist.md +10 -0
- package/docs/v9/test/phase2/specialists/technical-writer.specialist.md +10 -0
- package/docs/v9/test/phase2/team_assignment.json +61 -0
- package/docs/v9/test/phase3/blueprints/legal-analyst.md +840 -0
- package/docs/v9/test/phase3/legal-analyst-full.specialist.md +111 -0
- package/docs/v9/test/phase3/project_context/nh_landlord_tenant_notes.md +35 -0
- package/docs/v9/test/phase3/project_context/property_facts.md +32 -0
- package/docs/v9/test/phase3b/blueprints/legal-analyst.md +1715 -0
- package/docs/v9/test/phase3b/legal-analyst.specialist.md +153 -0
- package/docs/v9/test/phase3b/scratch/legal-analyst-stage1.md +270 -0
- package/docs/v9/test/phase4/TEST_PLAN.md +32 -0
- package/docs/v9/test/phase4/blueprints/financial-analyst-T2.md +538 -0
- package/docs/v9/test/phase4/blueprints/legal-analyst-T4.md +253 -0
- package/docs/v9/test/phase4/cross-blueprint-check.md +280 -0
- package/docs/v9/test/phase4/scratch/financial-analyst-T2-stage1.md +67 -0
- package/docs/v9/test/phase4/scratch/legal-analyst-T4-stage1.md +54 -0
- package/docs/v9/test/phase4/specialists/financial-analyst.specialist.md +156 -0
- package/docs/v9/test/phase4/specialists/legal-analyst.specialist.md +153 -0
- package/docs/v9/test/phase5/TEST_PLAN.md +35 -0
- package/docs/v9/test/phase5/blueprints/code-architect-hw-vetter.md +375 -0
- package/docs/v9/test/phase5/output/04_compliance_checklist.md +149 -0
- package/docs/v9/test/phase5/output/hardware-vetter-SKILL-v2.md +561 -0
- package/docs/v9/test/phase5/output/hardware-vetter-SKILL.md +459 -0
- package/docs/v9/test/phase5/producers/code-writer.producer.md +49 -0
- package/docs/v9/test/phase5/producers/document-writer.producer.md +62 -0
- package/docs/v9/test/phase5/regression-comparison-v2.md +60 -0
- package/docs/v9/test/phase5/regression-comparison.md +197 -0
- package/docs/v9/test/phase5/review-5A-specialist.md +213 -0
- package/docs/v9/test/phase5/specialist-test/TEST_PLAN.md +60 -0
- package/docs/v9/test/phase5/specialist-test/blueprint-comparison.md +252 -0
- package/docs/v9/test/phase5/specialist-test/blueprints/code-architect-hw-vetter.md +916 -0
- package/docs/v9/test/phase5/specialist-test/scratch/code-architect-stage1.md +427 -0
- package/docs/v9/test/phase5/specialists/code-architect.specialist.md +168 -0
- package/docs/v9/test/phase5b/TEST_PLAN.md +219 -0
- package/docs/v9/test/phase5b/blueprints/5B-10-stage2-with-decisions.md +286 -0
- package/docs/v9/test/phase5b/decisions/5B-2-accept-all-decisions.json +68 -0
- package/docs/v9/test/phase5b/decisions/5B-3-promote-decisions.json +70 -0
- package/docs/v9/test/phase5b/decisions/5B-4-individual-decisions.json +68 -0
- package/docs/v9/test/phase5b/decisions/5B-5-triage-decisions.json +110 -0
- package/docs/v9/test/phase5b/decisions/5B-6-fallback-decisions.json +40 -0
- package/docs/v9/test/phase5b/decisions/5B-8-partial-decisions.json +46 -0
- package/docs/v9/test/phase5b/decisions/5B-9-complete-decisions.json +54 -0
- package/docs/v9/test/phase5b/scratch/code-architect-stage1.md +133 -0
- package/docs/v9/test/phase5b/specialists/code-architect.specialist.md +202 -0
- package/docs/v9/test/phase5b/stage1-many-decisions.md +139 -0
- package/docs/v9/test/phase5b/stage1-no-assumptions.md +70 -0
- package/docs/v9/test/phase5b/stage1-with-assumptions.md +86 -0
- package/docs/v9/test/phase5b/test-5B-1-results.md +157 -0
- package/docs/v9/test/phase5b/test-5B-10-results.md +130 -0
- package/docs/v9/test/phase5b/test-5B-2-results.md +75 -0
- package/docs/v9/test/phase5b/test-5B-3-results.md +104 -0
- package/docs/v9/test/phase5b/test-5B-4-results.md +114 -0
- package/docs/v9/test/phase5b/test-5B-5-results.md +126 -0
- package/docs/v9/test/phase5b/test-5B-6-results.md +60 -0
- package/docs/v9/test/phase5b/test-5B-7-results.md +141 -0
- package/docs/v9/test/phase5b/test-5B-8-results.md +115 -0
- package/docs/v9/test/phase5b/test-5B-9-results.md +76 -0
- package/docs/v9/test/producers/document-writer.producer.md +62 -0
- package/docs/v9/test/specialists/legal-analyst.specialist.md +58 -0
- package/package.json +4 -2
- package/producers/code-writer/code-writer.producer.md +86 -0
- package/producers/data-file-writer/data-file-writer.producer.md +116 -0
- package/producers/document-writer/document-writer.producer.md +117 -0
- package/producers/form-filler/form-filler.producer.md +99 -0
- package/producers/presentation-creator/presentation-creator.producer.md +109 -0
- package/producers/spreadsheet-builder/spreadsheet-builder.producer.md +107 -0
- package/scripts/install-skills.js +97 -9
- package/scripts/uninstall-skills.js +7 -2
- package/skills/intuition-agent-advisor/SKILL.md +327 -220
- package/skills/intuition-assemble/SKILL.md +261 -0
- package/skills/intuition-build/SKILL.md +379 -319
- package/skills/intuition-debugger/SKILL.md +390 -390
- package/skills/intuition-design/SKILL.md +385 -381
- package/skills/intuition-detail/SKILL.md +377 -0
- package/skills/intuition-engineer/SKILL.md +307 -303
- package/skills/intuition-handoff/SKILL.md +264 -222
- package/skills/intuition-handoff/references/handoff_core.md +54 -54
- package/skills/intuition-initialize/SKILL.md +21 -6
- package/skills/intuition-initialize/references/agents_template.md +118 -118
- package/skills/intuition-initialize/references/claude_template.md +134 -134
- package/skills/intuition-initialize/references/intuition_readme_template.md +4 -4
- package/skills/intuition-initialize/references/state_template.json +17 -2
- package/skills/{intuition-plan → intuition-outline}/SKILL.md +561 -481
- package/skills/{intuition-plan → intuition-outline}/references/magellan_core.md +16 -16
- package/skills/{intuition-plan → intuition-outline}/references/templates/plan_template.md +6 -6
- package/skills/intuition-prompt/SKILL.md +374 -312
- package/skills/intuition-start/SKILL.md +46 -13
- package/skills/intuition-start/references/start_core.md +60 -60
- package/skills/intuition-test/SKILL.md +345 -0
- package/specialists/api-designer/api-designer.specialist.md +291 -0
- package/specialists/business-analyst/business-analyst.specialist.md +270 -0
- package/specialists/copywriter/copywriter.specialist.md +268 -0
- package/specialists/database-architect/database-architect.specialist.md +275 -0
- package/specialists/devops-infrastructure/devops-infrastructure.specialist.md +314 -0
- package/specialists/financial-analyst/financial-analyst.specialist.md +269 -0
- package/specialists/frontend-component/frontend-component.specialist.md +293 -0
- package/specialists/instructional-designer/instructional-designer.specialist.md +285 -0
- package/specialists/legal-analyst/legal-analyst.specialist.md +260 -0
- package/specialists/marketing-strategist/marketing-strategist.specialist.md +281 -0
- package/specialists/project-manager/project-manager.specialist.md +266 -0
- package/specialists/research-analyst/research-analyst.specialist.md +273 -0
- package/specialists/security-auditor/security-auditor.specialist.md +354 -0
- package/specialists/technical-writer/technical-writer.specialist.md +275 -0
- /package/skills/{intuition-plan → intuition-outline}/references/sub_agents.md +0 -0
- /package/skills/{intuition-plan → intuition-outline}/references/templates/confidence_scoring.md +0 -0
- /package/skills/{intuition-plan → intuition-outline}/references/templates/plan_format.md +0 -0
- /package/skills/{intuition-plan → intuition-outline}/references/templates/planning_process.md +0 -0
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
# Universal Blueprint Envelope: Hardware Vetter Claude Code Skill
|
|
2
|
+
|
|
3
|
+
**Blueprint ID:** code-architect-hw-vetter
|
|
4
|
+
**Specialist:** code-architect
|
|
5
|
+
**Producer:** code-writer
|
|
6
|
+
**Source Task:** Task 2 — Build the Hardware Vetter Claude Code Skill
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Task Reference
|
|
11
|
+
|
|
12
|
+
**Task Number:** 2
|
|
13
|
+
|
|
14
|
+
**Acceptance Criteria:**
|
|
15
|
+
1. Skill accepts all four hardware change types: CPU upgrade, GPU addition, RAM change, and entire system replacement
|
|
16
|
+
2. Skill reads current hardware specs and model data from `docs/model_catalog.json` and `src/pipeline/config.py` without requiring manual data entry
|
|
17
|
+
3. For each registered and candidate model, the skill produces a fit/no-fit verdict on proposed hardware with VRAM/RAM resource estimates
|
|
18
|
+
4. Skill delivers a before/after comparison between current and proposed hardware showing performance impact per model
|
|
19
|
+
5. Skill identifies which candidate models (beyond the current 3 registered) become feasible on the proposed hardware
|
|
20
|
+
6. Output report includes an upgrade recommendation with clear rationale
|
|
21
|
+
7. When benchmark data is unavailable for a specific hardware + model combination, the skill estimates from specs and flags the result as "projected" rather than "verified"
|
|
22
|
+
8. Report is written to a timestamped markdown file in the project
|
|
23
|
+
|
|
24
|
+
**Dependencies:** Task 1 (Augment Model Catalog for Hardware Evaluation) — provides GPU VRAM fields in `docs/model_catalog.json`. CPU/RAM-only evaluation works without Task 1; GPU analysis requires it.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. Research Findings
|
|
29
|
+
|
|
30
|
+
### Data Flow Pattern
|
|
31
|
+
Both tasks share `docs/model_catalog.json` as the central data artifact. Task 1 augments it with GPU fields; this skill reads the augmented catalog as input. The skill never writes back to the catalog — read-only access.
|
|
32
|
+
|
|
33
|
+
### Model-to-Catalog Mapping
|
|
34
|
+
The pipeline config (`src/pipeline/config.py`) stores Ollama model identifiers (e.g., `"llama3.1:8b"`). The model catalog uses kebab-case keys (e.g., `"llama3.1-8b"`) and includes an `ollama_id` field per model. The skill matches config model names to catalog entries by comparing against each model's `ollama_id` field.
|
|
35
|
+
|
|
36
|
+
### Backwards Compatibility
|
|
37
|
+
All schema changes to `model_catalog.json` are additive. No existing fields are modified or removed. The catalog's `schema_version` will be `"1.1"` after Task 1 augmentation.
|
|
38
|
+
|
|
39
|
+
### Confidence Labeling Convention
|
|
40
|
+
Throughout the skill and its reports, every quantitative data point carries a confidence label:
|
|
41
|
+
- **Verified**: Data sourced from a published benchmark with a cited URL.
|
|
42
|
+
- **Projected**: Estimated from hardware specifications and model requirements. Calculation basis noted.
|
|
43
|
+
|
|
44
|
+
### Report Output Convention
|
|
45
|
+
Reports go to `docs/reports/` (created if absent). File naming: `hardware_eval_YYYY-MM-DD_[2-4-word-slug].md`. Each evaluation creates a new file — never overwrite existing reports.
|
|
46
|
+
|
|
47
|
+
### Skill Convention
|
|
48
|
+
User's existing skill structure observed in `~/.claude/skills/` — YAML frontmatter with `name`, `description`, `model`, `tools` fields, followed by structured protocol sections with numbered steps. All personal skills use the `[name]/SKILL.md` directory pattern. This is the project's first skill and sets the pattern.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 3. Approach
|
|
53
|
+
|
|
54
|
+
**Strategy:** Create a Claude Code skill as a directory-based package at `.claude/skills/hardware-vetter/SKILL.md` following the user's established skill convention. The skill file contains YAML frontmatter plus structured protocol instructions that guide Claude through: data loading, interactive hardware intake, spec-based feasibility analysis, benchmark web search, and report generation. All logic is embedded as natural language instructions — no code execution.
|
|
55
|
+
|
|
56
|
+
**Rationale:** Directory structure matches the user's existing skill convention (all personal skills use `[name]/SKILL.md`). This is the project's first skill and sets the pattern. Sonnet model balances capability (web search, multi-step analysis, report writing) with speed for iterative hardware evaluations.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 4. Decisions Made
|
|
61
|
+
|
|
62
|
+
1. **Question flow adaptation (full system vs single component):** Unified flow with multi-select. "Full system" subsumes individual selections and asks all follow-ups sequentially. No separate paths needed.
|
|
63
|
+
|
|
64
|
+
2. **Comparison metrics priority:** Full performance matrix — feasibility tier, resource headroom, throughput, and concurrency — all with confidence labels. No metric prioritization; all are presented. The executive summary provides the high-level verdict.
|
|
65
|
+
|
|
66
|
+
3. **Visual distinction for verified vs projected:** Inline text labels "(Verified)" and "(Projected)" next to each data point in report tables. Methodology section provides aggregate breakdown (X of Y verified). No color coding — markdown doesn't support it reliably.
|
|
67
|
+
|
|
68
|
+
4. **File naming convention:** `docs/reports/hardware_eval_YYYY-MM-DD_[2-4-word-slug].md`. Slug derived from proposed change type. Design spec's convention adopted directly.
|
|
69
|
+
|
|
70
|
+
5. **Schema validation:** Skill validates that `model_catalog.json` exists and has `hardware_profile` and `models` keys. For GPU fields, graceful degradation: if missing, CPU-only analysis with notation. No strict schema enforcement — trust the data but handle gaps.
|
|
71
|
+
|
|
72
|
+
6. **Skill file structure:** Directory pattern `.claude/skills/hardware-vetter/SKILL.md` — matches user's established convention, sets project precedent.
|
|
73
|
+
|
|
74
|
+
7. **Skill model:** `model: sonnet` in frontmatter — balances reasoning capability with speed for iterative evaluations.
|
|
75
|
+
|
|
76
|
+
8. **How skill reads config.py:** Read tool parses the Python source file. Looks for field default values in the Settings class (e.g., `chat_model: str = "llama3.1:8b"`). Maps Ollama identifiers to catalog entries via `ollama_id` field matching.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 5. Deliverable Specification
|
|
81
|
+
|
|
82
|
+
The deliverable is a single file: `.claude/skills/hardware-vetter/SKILL.md`. It consists of YAML frontmatter followed by 8 sections of structured natural language instructions. The complete specification for each section follows.
|
|
83
|
+
|
|
84
|
+
### 5.1 YAML Frontmatter
|
|
85
|
+
|
|
86
|
+
The file MUST begin with exactly this frontmatter block:
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
---
|
|
90
|
+
name: hardware-vetter
|
|
91
|
+
description: Evaluate proposed hardware changes against the AI server's model lineup
|
|
92
|
+
model: sonnet
|
|
93
|
+
tools: Read, WebSearch, AskUserQuestion, Write, Glob
|
|
94
|
+
---
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 5.2 Section 1: Overview & Role
|
|
98
|
+
|
|
99
|
+
- One-line role statement: "You are a hardware evaluation specialist for the AI server."
|
|
100
|
+
- State the skill's purpose: evaluate hardware changes, produce a report with feasibility verdicts and upgrade recommendations.
|
|
101
|
+
- List what the skill DOES:
|
|
102
|
+
- Loads current hardware specs and model requirements from project data
|
|
103
|
+
- Asks the user about proposed hardware changes
|
|
104
|
+
- Calculates feasibility for every model in the catalog
|
|
105
|
+
- Searches for published benchmarks to validate estimates
|
|
106
|
+
- Produces a timestamped report with verdicts and recommendations
|
|
107
|
+
- List what the skill does NOT do:
|
|
108
|
+
- Does NOT run benchmarks or execute code
|
|
109
|
+
- Does NOT make purchase decisions or recommend vendors
|
|
110
|
+
- Does NOT modify project files (model catalog, config, or source code)
|
|
111
|
+
- Does NOT compare pricing or cost-effectiveness
|
|
112
|
+
- Does NOT evaluate software or driver compatibility
|
|
113
|
+
|
|
114
|
+
### 5.3 Section 2: Data Loading
|
|
115
|
+
|
|
116
|
+
**Catalog loading:**
|
|
117
|
+
- Instructions to read `docs/model_catalog.json` using the Read tool.
|
|
118
|
+
- Extract from catalog:
|
|
119
|
+
- `hardware_profile` object -> current server specs (RAM, CPU model/cores/clock, GPU status)
|
|
120
|
+
- `models` object -> all 11 models with their `hardware_requirements`, `ollama_id`, `display_name`, `parameter_count`, `feasibility`
|
|
121
|
+
|
|
122
|
+
**Config loading:**
|
|
123
|
+
- Instructions to read `src/pipeline/config.py` using the Read tool.
|
|
124
|
+
- Extract from config: default values of `chat_model`, `fast_model`, `default_model` fields (the Ollama model identifiers).
|
|
125
|
+
- Map registered models to catalog entries by matching config values against each model's `ollama_id` field.
|
|
126
|
+
|
|
127
|
+
**Validation gate:**
|
|
128
|
+
- If `model_catalog.json` is missing or unreadable -> stop with error message.
|
|
129
|
+
- If GPU fields (`gpu_vram_gb_q4`) are missing from model entries -> note the limitation and proceed with CPU-only analysis path.
|
|
130
|
+
|
|
131
|
+
### 5.4 Section 3: Question Flow
|
|
132
|
+
|
|
133
|
+
**Step 3a — Change type selection:**
|
|
134
|
+
- Use AskUserQuestion with `multiSelect: true`.
|
|
135
|
+
- Question: "What hardware changes are you evaluating?"
|
|
136
|
+
- Options: "CPU upgrade", "GPU addition", "RAM change", "Full system replacement"
|
|
137
|
+
- If "Full system replacement" is selected alongside individual components, treat as full system (subsumes individual selections).
|
|
138
|
+
|
|
139
|
+
**Step 3b — Per-component follow-ups** (ask sequentially for each selected type):
|
|
140
|
+
|
|
141
|
+
- **CPU**: Ask for: processor model/family (e.g., "Xeon Gold 6448Y"), core count, base/turbo clock speeds, architecture generation. Use a single AskUserQuestion with free-text option, since CPU specs vary widely.
|
|
142
|
+
- **GPU**: Ask for: GPU model, VRAM capacity in GB, and optionally PCIe generation. Provide common options: RTX 4060 Ti/16GB, RTX 4070/12GB, RTX 4080/16GB, RTX 4090/24GB, A4000/16GB, A5000/24GB, A6000/48GB, plus free-text for unlisted GPUs. Suggested input format: "GPU Model, VRAM in GB (e.g., RTX 4060 Ti, 16GB)".
|
|
143
|
+
- **RAM**: Ask for: new total RAM capacity in GB (not just the amount being added). Provide common options: 128GB, 192GB, 256GB, 384GB, 512GB, 768GB, 1024GB (1 TB), plus free-text. Optionally ask DDR generation/speed if user knows.
|
|
144
|
+
- **Full system**: Ask all of the above in sequence (CPU, then GPU if included, then RAM).
|
|
145
|
+
|
|
146
|
+
**Step 3c — Confirmation:**
|
|
147
|
+
- Present a summary of all proposed changes back to the user.
|
|
148
|
+
- Ask for confirmation via AskUserQuestion before proceeding to analysis.
|
|
149
|
+
- Format as a markdown table with columns: Component | Current | Proposed | Change. Example:
|
|
150
|
+
```
|
|
151
|
+
| Component | Current | Proposed | Change |
|
|
152
|
+
|-----------|---------|----------|--------|
|
|
153
|
+
| GPU | None | RTX 4060 Ti 16GB | Addition |
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 5.5 Section 4: Analysis Methodology
|
|
157
|
+
|
|
158
|
+
#### Feasibility Calculation
|
|
159
|
+
|
|
160
|
+
For each model in the catalog, at the model's `recommended_quantization` level:
|
|
161
|
+
|
|
162
|
+
**CPU-only path** (when no GPU is proposed or GPU fields are missing):
|
|
163
|
+
- Resource usage = `ram_gb_q4` / `proposed_total_ram` (or equivalent for the quantization level)
|
|
164
|
+
- Headroom = `(proposed_total_ram - ram_gb_q4) / proposed_total_ram * 100`
|
|
165
|
+
|
|
166
|
+
**GPU path** (when GPU is proposed and GPU VRAM data exists):
|
|
167
|
+
- Resource usage = `gpu_vram_gb_q4` / `proposed_gpu_vram`
|
|
168
|
+
- Headroom = `(proposed_gpu_vram - gpu_vram_gb_q4) / proposed_gpu_vram * 100`
|
|
169
|
+
- If model exceeds GPU VRAM: check if partial offload is viable (model's `gpu_offload_support` != `"cpu_only_viable"` AND combined GPU VRAM + system RAM can hold the model)
|
|
170
|
+
- **Partial offload calculation**: When a model exceeds GPU VRAM but fits in combined GPU + system RAM:
|
|
171
|
+
- VRAM spillover = `gpu_vram_gb_q4 - proposed_gpu_vram`
|
|
172
|
+
- System RAM needed for spillover = VRAM spillover amount
|
|
173
|
+
- Remaining system RAM = `proposed_total_ram - spillover`
|
|
174
|
+
- Feasibility tier based on remaining system RAM headroom (apply same thresholds)
|
|
175
|
+
- **Loading strategy labels**: Assign each model one of these labels in analysis and report:
|
|
176
|
+
- `Full GPU offload` — model fits entirely in GPU VRAM with >= 10% headroom
|
|
177
|
+
- `Partial GPU offload` — model requires CPU RAM spillover but fits in combined resources
|
|
178
|
+
- `CPU-only` — no GPU proposed, or model's `gpu_offload_support` is `"cpu_only_viable"`
|
|
179
|
+
- `Does not fit` — model exceeds all available resources
|
|
180
|
+
|
|
181
|
+
**Tier assignment based on headroom:**
|
|
182
|
+
- `>= 40%` headroom -> `runs_comfortably`
|
|
183
|
+
- `10-39%` headroom -> `runs_constrained`
|
|
184
|
+
- `< 10%` headroom or exceeds total capacity -> `does_not_fit`
|
|
185
|
+
|
|
186
|
+
**Concurrent capacity:**
|
|
187
|
+
- `floor(available_resource / per_model_requirement)`, capped by CPU core availability (at least 2 cores per concurrent instance as a heuristic).
|
|
188
|
+
|
|
189
|
+
**Throughput estimate:**
|
|
190
|
+
- If no benchmark data, estimate relative throughput from clock speed ratio (proposed vs current) and core count ratio for CPU-bound inference.
|
|
191
|
+
- Use **base clock speeds** for comparison (turbo is inconsistent under sustained inference load): `relative_throughput = (proposed_base_clock / current_base_clock) * sqrt(proposed_cores / current_cores)`
|
|
192
|
+
- The geometric mean (sqrt) for core scaling accounts for diminishing returns in parallelism for single-request inference.
|
|
193
|
+
- **Worked example**: Current = 2.1 GHz base, 12 cores. Proposed = 3.0 GHz base, 24 cores. Throughput multiplier = (3.0/2.1) * sqrt(24/12) = 1.43 * 1.41 = ~2.02x improvement. Flag as "Projected."
|
|
194
|
+
- Flag all spec-based estimates as "Projected."
|
|
195
|
+
|
|
196
|
+
#### Before/After Comparison
|
|
197
|
+
|
|
198
|
+
For the 3 registered models ONLY:
|
|
199
|
+
- Current feasibility tier and headroom (from current `hardware_profile` vs model requirements)
|
|
200
|
+
- Proposed feasibility tier and headroom
|
|
201
|
+
- Delta in concurrent capacity
|
|
202
|
+
- Delta in estimated throughput
|
|
203
|
+
|
|
204
|
+
#### Candidate Expansion
|
|
205
|
+
|
|
206
|
+
For all non-registered models:
|
|
207
|
+
- Current feasibility tier vs proposed feasibility tier
|
|
208
|
+
- Highlight models that move from `does_not_fit` -> `runs_constrained` or `runs_comfortably`
|
|
209
|
+
- These are "newly feasible" models the upgrade enables
|
|
210
|
+
|
|
211
|
+
### 5.6 Section 5: Benchmark Search
|
|
212
|
+
|
|
213
|
+
For each model that is `runs_comfortably` or `runs_constrained` on proposed hardware:
|
|
214
|
+
- Construct primary search query: `"[model_display_name] [proposed_hardware_identifier] benchmark tokens per second Ollama"`
|
|
215
|
+
- If primary query returns no useful results, try alternative query: `"[model_display_name] [proposed_hardware_identifier] llama.cpp inference speed"`
|
|
216
|
+
- Run 1-2 WebSearch calls per model (prioritize registered models first, then top candidates by parameter count)
|
|
217
|
+
- Filter results for: matching model variant, similar hardware class, Ollama/llama.cpp runtime
|
|
218
|
+
- Extract: throughput (tok/s), concurrency data if available, source URL
|
|
219
|
+
- If benchmark found: mark data point as "Verified", cite URL
|
|
220
|
+
- If not found: keep spec-based estimate, mark as "Projected"
|
|
221
|
+
|
|
222
|
+
**Search cap:** Maximum 8 WebSearch calls per evaluation to avoid excessive latency. Prioritize registered models and models near the feasibility boundary.
|
|
223
|
+
|
|
224
|
+
### 5.7 Section 6: Report Template
|
|
225
|
+
|
|
226
|
+
**Output path:** `docs/reports/hardware_eval_YYYY-MM-DD_[slug].md`
|
|
227
|
+
- Create `docs/reports/` directory if it doesn't exist (use Write tool — writing the file to the path will create intermediate directories).
|
|
228
|
+
- Derive the slug from the proposed change (e.g., `rtx-4060-addition`, `ram-256gb-upgrade`, `full-system-replacement`).
|
|
229
|
+
|
|
230
|
+
**Report sections in exact order:**
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
# Hardware Evaluation: [Brief Description]
|
|
234
|
+
**Date:** YYYY-MM-DD
|
|
235
|
+
**Evaluated by:** Hardware Vetter Skill (automated analysis)
|
|
236
|
+
|
|
237
|
+
## Executive Summary
|
|
238
|
+
[3-5 sentences: upgrade verdict (recommended/not recommended/conditional),
|
|
239
|
+
key rationale, biggest performance impact, notable new model possibilities]
|
|
240
|
+
|
|
241
|
+
## Proposed Changes
|
|
242
|
+
[Table: Component | Current | Proposed | Change]
|
|
243
|
+
|
|
244
|
+
## Feasibility Matrix
|
|
245
|
+
[Table: Model | Parameters | Quantization | Loading Strategy | Resource Usage | Headroom | Tier | Confidence]
|
|
246
|
+
[All 11 models, sorted by parameter count descending]
|
|
247
|
+
[Registered models marked with bold and asterisk (*)]
|
|
248
|
+
[Loading Strategy column: Full GPU offload / Partial GPU offload / CPU-only / Does not fit]
|
|
249
|
+
|
|
250
|
+
## Before/After Comparison (Registered Models)
|
|
251
|
+
[Table per registered model: Metric | Current | Proposed | Delta]
|
|
252
|
+
[Metrics: feasibility tier, headroom %, est. throughput, concurrent capacity]
|
|
253
|
+
[Each data point labeled Verified or Projected]
|
|
254
|
+
|
|
255
|
+
## Candidate Model Expansion
|
|
256
|
+
[List models that become newly feasible]
|
|
257
|
+
[For each: parameter count, use case strengths, feasibility tier on proposed hardware]
|
|
258
|
+
[If no new models become feasible, state that explicitly]
|
|
259
|
+
|
|
260
|
+
## Recommendation
|
|
261
|
+
[1-2 paragraphs: clear upgrade/no-upgrade verdict with primary justification]
|
|
262
|
+
[If conditional: state what conditions would change the recommendation]
|
|
263
|
+
[Reference specific models and metrics from the analysis above]
|
|
264
|
+
|
|
265
|
+
## Methodology & Confidence Notes
|
|
266
|
+
[Data sources: model catalog version, config file, benchmark URLs]
|
|
267
|
+
[Projected vs Verified breakdown: X of Y data points are verified]
|
|
268
|
+
[Known limitations: list any models without GPU data, benchmark search gaps]
|
|
269
|
+
[Feasibility threshold definitions for reader reference:]
|
|
270
|
+
- runs_comfortably: >= 40% resource headroom
|
|
271
|
+
- runs_constrained: 10-39% resource headroom
|
|
272
|
+
- does_not_fit: < 10% headroom or exceeds total capacity
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### 5.8 Section 7: Error Handling & Graceful Degradation
|
|
276
|
+
|
|
277
|
+
The skill MUST handle every error case below and MUST always produce a report. Never fail silently.
|
|
278
|
+
|
|
279
|
+
**CRITICAL:** Mark this section with a CRITICAL RULES header in the skill output. These are non-negotiable behaviors.
|
|
280
|
+
|
|
281
|
+
1. **Missing catalog**: If `model_catalog.json` is missing or unreadable -> stop with clear error message. Suggest running the project setup. This is the ONLY case where no report is produced.
|
|
282
|
+
2. **Missing GPU fields**: If GPU fields (`gpu_vram_gb_q4`) are missing from model entries -> proceed with CPU-only analysis path. Add note to report header: "GPU analysis unavailable — catalog needs GPU augmentation (run Task 1)." All GPU-dependent calculations skipped; loading strategy defaults to `CPU-only` for all models.
|
|
283
|
+
3. **Unreadable config**: If `config.py` is unreadable or model fields cannot be parsed -> fall back to analyzing all catalog models without distinguishing registered vs candidate. Omit Before/After Comparison section. Add note to report header explaining the limitation.
|
|
284
|
+
4. **No benchmark results**: If benchmark search returns no results for any model -> all throughput estimates remain "Projected." Methodology section documents that zero benchmarks were found and all performance estimates are spec-derived.
|
|
285
|
+
5. **Unrecognized hardware**: If user provides a hardware component that the skill cannot identify specs for -> ask user to provide key specs directly (VRAM for GPUs, core count and clock speed for CPUs). Do NOT guess specs for unknown hardware.
|
|
286
|
+
6. **User proposes a downgrade**: If proposed specs are lower than current specs in any dimension (fewer cores, less RAM, slower clock) -> proceed with analysis normally but flag the downgrade explicitly in the Executive Summary. Do NOT refuse to analyze downgrades.
|
|
287
|
+
7. **Partial offload complexity**: When a model requires partial GPU offload (VRAM spillover to system RAM) -> use conservative estimates for throughput (partial offload is typically slower than full offload by 30-50%). Flag all partial offload throughput estimates as "Projected — partial offload penalty estimated."
|
|
288
|
+
8. **Missing hardware_profile fields**: If `hardware_profile` is present but missing specific fields (e.g., no clock speeds, no core count) -> use available fields for analysis, skip calculations requiring missing data, and note gaps in Methodology section.
|
|
289
|
+
|
|
290
|
+
**Validation gates summary**: Before proceeding to analysis, confirm: (1) catalog loaded successfully, (2) at least one model entry found, (3) user confirmation received. If any gate fails, explain what's wrong and stop or degrade gracefully per the rules above.
|
|
291
|
+
|
|
292
|
+
### 5.9 Section 8: Completion
|
|
293
|
+
|
|
294
|
+
After writing the report, tell the user:
|
|
295
|
+
- The report file path
|
|
296
|
+
- A 2-3 sentence summary of the key finding (upgrade verdict + most impactful change)
|
|
297
|
+
- Suggest they review the full report for details
|
|
298
|
+
|
|
299
|
+
Do NOT ask follow-up questions after presenting results. The evaluation is complete. If the user wants to evaluate different hardware, they should invoke the skill again.
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## 6. Acceptance Mapping
|
|
304
|
+
|
|
305
|
+
| AC # | Acceptance Criterion | Deliverable Section(s) |
|
|
306
|
+
|------|---------------------|----------------------|
|
|
307
|
+
| 1 | Accepts all four hardware change types | Section 3 (Question Flow) — Step 3a offers all four options via multi-select; Step 3b has per-component follow-ups for each type; "Full system" subsumes individual selections |
|
|
308
|
+
| 2 | Reads current specs from model_catalog.json and config.py without manual data entry | Section 2 (Data Loading) — explicit Read tool instructions for both files, extraction of hardware_profile, models, and config model fields |
|
|
309
|
+
| 3 | Produces fit/no-fit verdict per model with resource estimates | Section 4 (Analysis Methodology) — feasibility calculation with resource usage and headroom formulas, tier assignment thresholds (runs_comfortably / runs_constrained / does_not_fit) |
|
|
310
|
+
| 4 | Before/after comparison showing performance impact | Section 4 (Before/After Comparison) — current vs proposed feasibility tier, headroom, concurrent capacity, throughput delta for 3 registered models; Section 6 report template "Before/After Comparison (Registered Models)" table |
|
|
311
|
+
| 5 | Identifies newly feasible candidate models | Section 4 (Candidate Expansion) — highlights models moving from does_not_fit to runs_constrained or runs_comfortably; Section 6 report template "Candidate Model Expansion" section |
|
|
312
|
+
| 6 | Upgrade recommendation with clear rationale | Section 6 report template "Executive Summary" — 3-5 sentences with verdict (recommended/not recommended/conditional) and key rationale |
|
|
313
|
+
| 7 | Spec-based estimates flagged as "projected" when benchmarks unavailable | Section 5 (Benchmark Search) — Verified vs Projected labeling; Section 4 throughput estimate flagged as Projected; Section 6 "Methodology & Confidence Notes" with aggregate breakdown |
|
|
314
|
+
| 8 | Timestamped markdown file output | Section 6 (Report Template) — output path `docs/reports/hardware_eval_YYYY-MM-DD_[slug].md`, creates directory if absent, never overwrites existing reports |
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## 7. Integration Points
|
|
319
|
+
|
|
320
|
+
### Task 1 Dependency
|
|
321
|
+
- Task 1 adds `gpu_vram_gb_q4`, `gpu_vram_gb_q8`, and `gpu_offload_support` fields to each model's `hardware_requirements` in `docs/model_catalog.json`.
|
|
322
|
+
- Task 1 also adds `cpu_clock_ghz_base`, `cpu_clock_ghz_turbo`, `cpu_architecture`, and `storage_type` to the `hardware_profile` section.
|
|
323
|
+
- Task 1 bumps `schema_version` from `"1.0"` to `"1.1"`.
|
|
324
|
+
- **Graceful degradation:** If Task 1 is incomplete (GPU fields missing), this skill proceeds with CPU-only analysis and notes the limitation. The dependency is soft for CPU/RAM evaluations, hard for GPU evaluations.
|
|
325
|
+
|
|
326
|
+
### model_catalog.json
|
|
327
|
+
- Read-only access. Skill never writes to the catalog.
|
|
328
|
+
- Expected keys: `hardware_profile` (server specs), `models` (11 models with `hardware_requirements`, `ollama_id`, `display_name`, `parameter_count`, `feasibility`).
|
|
329
|
+
- GPU fields per model: `gpu_vram_gb_q4`, `gpu_vram_gb_q8`, `gpu_offload_support` (added by Task 1).
|
|
330
|
+
|
|
331
|
+
### config.py
|
|
332
|
+
- Read-only access via Read tool. Parses Python source text.
|
|
333
|
+
- Looks for field default values in the Settings class: `chat_model`, `fast_model`, `default_model` (Ollama model identifiers like `"llama3.1:8b"`).
|
|
334
|
+
- Maps config model identifiers to catalog entries via `ollama_id` field matching.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 8. Open Items
|
|
339
|
+
|
|
340
|
+
### Requires User Input
|
|
341
|
+
- **Storage type**: The `hardware_profile.storage_type` field in the catalog needs the actual storage type of the aos-ai-beta server (SSD, HDD, NVMe). The build agent will need this from the user or server documentation during Task 1. (This is a Task 1 input — not directly blocking this task, but affects the data this skill reads.)
|
|
342
|
+
|
|
343
|
+
### Risk Notes
|
|
344
|
+
|
|
345
|
+
1. **GPU VRAM data accuracy** (inherited from Task 1): Published VRAM requirements vary by source and don't always account for Ollama runtime overhead. Mitigation: the skill's feasibility thresholds use a 40% headroom buffer for "runs_comfortably," which absorbs typical overhead discrepancies. Values should represent model weights only.
|
|
346
|
+
|
|
347
|
+
2. **Benchmark search quality**: Web searches may return irrelevant, dated, or conflicting results. Mitigation: spec-based analysis is the baseline (always runs); benchmarks are validation layer. Cap at 8 WebSearch calls per evaluation to bound latency. All benchmark sources cited for user verification.
|
|
348
|
+
|
|
349
|
+
3. **Partial offload complexity**: GPU + CPU split inference is harder to estimate accurately than pure GPU or pure CPU. Mitigation: the skill identifies when partial offload is needed but uses conservative estimates. Flagged as "Projected" unless a matching benchmark is found.
|
|
350
|
+
|
|
351
|
+
4. **Skill instruction length**: The skill needs comprehensive instructions to handle all edge cases reliably. Sonnet should handle long instruction following well, but the file will be substantial (~300-400 lines of markdown). The instructions should be organized with clear section headers and numbered steps so the model can follow sequentially.
|
|
352
|
+
|
|
353
|
+
5. **First project skill**: No project-level precedent to follow. The directory structure and frontmatter format are based on the user's personal skills. If Claude Code's project-level skill handling differs from user-level, this may need adjustment. Low risk — the system is designed to work consistently.
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## 9. Producer Handoff
|
|
358
|
+
|
|
359
|
+
**Producer:** code-writer
|
|
360
|
+
**Output format:** Markdown (SKILL.md)
|
|
361
|
+
**Output filename:** `.claude/skills/hardware-vetter/SKILL.md`
|
|
362
|
+
|
|
363
|
+
**Content blocks in section order:**
|
|
364
|
+
|
|
365
|
+
1. **YAML Frontmatter** — Exact block specified in Section 5.1
|
|
366
|
+
2. **Overview & Role** — Role statement, purpose, exclusions per Section 5.2
|
|
367
|
+
3. **Data Loading** — Catalog read, config read, field extraction, model mapping, validation gate per Section 5.3
|
|
368
|
+
4. **Question Flow** — Multi-select change type, per-component follow-ups (CPU/GPU/RAM/Full system), confirmation step per Section 5.4
|
|
369
|
+
5. **Analysis Methodology** — Feasibility formulas (CPU-only and GPU paths), tier thresholds, concurrent capacity, throughput estimate, before/after comparison, candidate expansion per Section 5.5
|
|
370
|
+
6. **Benchmark Search** — Query construction, search execution, result filtering, Verified/Projected labeling, 8-search cap per Section 5.6
|
|
371
|
+
7. **Report Template** — Output path with slug derivation, directory creation, exact report section structure per Section 5.7
|
|
372
|
+
8. **Error Handling & Graceful Degradation** — All 8 error cases with fallback behaviors, validation gates summary per Section 5.8
|
|
373
|
+
9. **Completion** — Post-report user communication per Section 5.9
|
|
374
|
+
|
|
375
|
+
**Instruction to producer:** Write the SKILL.md file implementing all 8 skill sections (plus frontmatter) as specified. Each section of the deliverable specification maps to a section in the output file. The instructions in the SKILL.md must be imperative directives to Claude (second person: "You MUST..."), not user-facing documentation. Organize with clear section headers and numbered steps for reliable sequential execution by the Sonnet model. Use CRITICAL RULES callout blocks for non-negotiable behaviors. Include the worked throughput example in the analysis section. The skill should be comprehensive (~600-700 lines) — do not compress for brevity at the expense of clarity.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Landlord Registration & Compliance Checklist — 24 Meadow St ADU, Concord NH
|
|
2
|
+
|
|
3
|
+
**Property:** 24 Meadow St, Concord, NH 03301
|
|
4
|
+
**Owners:** Taylor & Katelyn Goodington
|
|
5
|
+
**Structure:** ADU (1-bedroom) — garage conversion with 8-foot rear extension
|
|
6
|
+
**Original construction year:** 1971 (pre-1978 — lead paint rules apply)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Status Legend
|
|
11
|
+
|
|
12
|
+
- **REQUIRED** — legally mandated; failure to comply may result in fines, inability to rent, or liability
|
|
13
|
+
- **RECOMMENDED** — not legally mandated but strongly advisable for risk management
|
|
14
|
+
- **OPTIONAL** — beneficial practice; at landlord's discretion
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## How to Use This Checklist
|
|
19
|
+
|
|
20
|
+
Check each item as it is completed. Items marked **[VERIFY]** require direct confirmation with the listed authority — specific details could not be confirmed from available research. Contact information for all authorities is provided in the Key Contacts section at the end of this document.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Category 1: Pre-Construction Permits
|
|
25
|
+
|
|
26
|
+
| [ ] | # | Item | Issuing Authority | Status | Est. Timeline | Est. Fee | Notes |
|
|
27
|
+
|-----|---|------|-------------------|--------|---------------|----------|-------|
|
|
28
|
+
| [ ] | 1.1 | ZBA Variance for rear extension | Concord Zoning Board of Adjustment | **REQUIRED** | COMPLETE (Feb 2026) | **[VERIFY]** — typically $100–$250 | Granted February 2026 per property records |
|
|
29
|
+
| [ ] | 1.2 | Building Permit — ADU construction | Concord Code Administration Division, 37 Green St, (603) 225-8580 | **REQUIRED** | 2–4 weeks for review after submission | **[VERIFY]** — calculated based on project valuation; contact Code Admin | Submit via online permit portal. Plans must show fire separation, egress, structural details. |
|
|
30
|
+
| [ ] | 1.3 | Electrical Permit | Concord Code Administration Division | **REQUIRED** | Concurrent with building permit | **[VERIFY]** — separate fee from building permit | Separate trade permit; separate inspector |
|
|
31
|
+
| [ ] | 1.4 | Plumbing Permit | Concord Code Administration Division | **REQUIRED** | Concurrent with building permit | **[VERIFY]** — separate fee from building permit | Separate trade permit; separate inspector |
|
|
32
|
+
| [ ] | 1.5 | Mechanical Permit (HVAC) | Concord Code Administration Division | **REQUIRED** | Concurrent with building permit | **[VERIFY]** — separate fee from building permit | Required if installing heating/cooling systems |
|
|
33
|
+
| [ ] | 1.6 | Sewage Disposal System Approval | NH Dept of Environmental Services (RSA 485-A) | **REQUIRED** | **[VERIFY]** — timeline depends on municipal vs. septic | **[VERIFY]** | If connecting to municipal sewer, confirm capacity approval. If septic, separate system or approved common leach field required. |
|
|
34
|
+
| [ ] | 1.7 | EPA-Certified Renovation Firm (RRP Rule) | U.S. EPA / NH DHHS | **REQUIRED** | Verify before construction begins | No fee to landlord (contractor bears certification cost) | Pre-1978 structure: all renovation work must be performed by EPA-certified firm using lead-safe work practices. 40 CFR 745. |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Category 2: Construction Completion & Inspections
|
|
39
|
+
|
|
40
|
+
| [ ] | # | Item | Issuing Authority | Status | Est. Timeline | Est. Fee | Notes |
|
|
41
|
+
|-----|---|------|-------------------|--------|---------------|----------|-------|
|
|
42
|
+
| [ ] | 2.1 | Framing Inspection | Concord Code Administration Division | **REQUIRED** | During construction (schedule 24 hrs ahead) | Included in building permit fee | Must pass before closing walls |
|
|
43
|
+
| [ ] | 2.2 | Electrical Rough-In Inspection | Concord Electrical Inspector | **REQUIRED** | During construction | Included in electrical permit fee | Before walls closed |
|
|
44
|
+
| [ ] | 2.3 | Plumbing Rough-In Inspection | Concord Plumbing Inspector | **REQUIRED** | During construction | Included in plumbing permit fee | Before walls closed |
|
|
45
|
+
| [ ] | 2.4 | Mechanical Inspection | Concord Mechanical Inspector | **REQUIRED** | During construction | Included in mechanical permit fee | HVAC system inspection |
|
|
46
|
+
| [ ] | 2.5 | Insulation Inspection | Concord Code Administration Division | **REQUIRED** | After insulation, before drywall | Included in building permit fee | Energy code compliance |
|
|
47
|
+
| [ ] | 2.6 | Fire Separation Inspection | Concord Fire Department / Code Admin | **REQUIRED** | During construction | **[VERIFY]** — may be included in building permit or separate fire inspection fee | Fire-rated separation between ADU and primary residence is mandatory per Concord ADU ordinance |
|
|
48
|
+
| [ ] | 2.7 | Final Building Inspection | Concord Code Administration Division | **REQUIRED** | After construction complete | Included in building permit fee | All systems complete and operational |
|
|
49
|
+
| [ ] | 2.8 | Final Electrical Inspection | Concord Electrical Inspector | **REQUIRED** | After construction complete | Included in electrical permit fee | Fixtures, outlets, panel complete |
|
|
50
|
+
| [ ] | 2.9 | Final Plumbing Inspection | Concord Plumbing Inspector | **REQUIRED** | After construction complete | Included in plumbing permit fee | Fixtures operational, no leaks |
|
|
51
|
+
| [ ] | 2.10 | Certificate of Occupancy (CO) | Concord Code Administration Division | **REQUIRED** | Issued after all inspections pass; typically 1–2 weeks after final inspection | **[VERIFY]** — fee may be included in building permit or separate | CANNOT legally rent the ADU without a valid CO. This is the gating requirement for all rental activity. |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Category 3: Landlord Registration & Legal Disclosures
|
|
56
|
+
|
|
57
|
+
| [ ] | # | Item | Issuing Authority | Status | Est. Timeline | Est. Fee | Notes |
|
|
58
|
+
|-----|---|------|-------------------|--------|---------------|----------|-------|
|
|
59
|
+
| [ ] | 3.1 | Landlord/Agent Registration | Concord City Clerk's Office, 41 Green St | **REQUIRED** | File before first tenant; same-day processing | $15 filing fee | Check payable to City of Concord. Required for rental property owners; designates agent for service. |
|
|
60
|
+
| [ ] | 3.2 | Lead Paint Disclosure Form | Federal requirement (42 U.S.C. 4852d); RSA 540-B | **REQUIRED** | Complete before lease signing | No fee (use EPA standard form) | Pre-1978 property. Landlord and tenant must sign EPA-approved disclosure form. Landlord must disclose all known lead hazards. Retain signed copy for 3 years. |
|
|
61
|
+
| [ ] | 3.3 | EPA Lead Paint Pamphlet | U.S. EPA | **REQUIRED** | Provide to tenant before lease signing | No fee (download from EPA.gov) | "Protect Your Family from Lead in Your Home" — must be provided to every tenant, including at lease renewal. |
|
|
62
|
+
| [ ] | 3.4 | Security Deposit Receipt | NH RSA 540-A | **REQUIRED** | Within 30 days of receiving deposit | No fee | Must provide written receipt with NH bank name and account number. Deposit held in separate escrow account. |
|
|
63
|
+
| [ ] | 3.5 | Landlord Identity Disclosure | NH law | **REQUIRED** | In lease or at tenancy start | No fee | Must provide tenant with name and address of landlord or authorized agent for service of process and notices. |
|
|
64
|
+
| [ ] | 3.6 | Utility Responsibility Disclosure | Best practice / lease term | **RECOMMENDED** | Include in lease | No fee | Specify which utilities landlord vs. tenant pays. Critical if ADU is not sub-metered — lease must address allocation method. |
|
|
65
|
+
| [ ] | 3.7 | Radon Disclosure | NH recommended practice | **RECOMMENDED** | Before lease signing | No fee (test kit ~$15–$30 if testing) | NH does not strictly require radon disclosure for rentals, but EPA recommends testing and disclosure. Basement/ground-level ADU exposure possible. **[VERIFY]** — confirm whether Concord has local radon disclosure requirement |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Category 4: Safety Compliance
|
|
70
|
+
|
|
71
|
+
| [ ] | # | Item | Issuing Authority | Status | Est. Timeline | Est. Fee | Notes |
|
|
72
|
+
|-----|---|------|-------------------|--------|---------------|----------|-------|
|
|
73
|
+
| [ ] | 4.1 | Smoke Detectors — installed and operational | NH Fire Code / Concord Fire Dept | **REQUIRED** | Before occupancy | ~$20–$50 per detector | Required on every level and in every sleeping area. Must be hardwired with battery backup in new construction. |
|
|
74
|
+
| [ ] | 4.2 | Carbon Monoxide (CO) Detectors | NH RSA 153:10a | **REQUIRED** | Before occupancy | ~$30–$60 per detector | Required on every level. Must have battery backup and be electrically powered (hardwired or plug-in). Exempt only if no attached garage AND no fuel-fired appliances — this ADU has an attached garage, so NOT exempt. |
|
|
75
|
+
| [ ] | 4.3 | Fire Separation Between Units | Concord ADU ordinance / Building Code | **REQUIRED** | Verified during construction inspections | Included in construction cost | Fire-rated wall/ceiling assembly between ADU and primary residence. Interior connecting door required if ADU is within/attached to main dwelling. |
|
|
76
|
+
| [ ] | 4.4 | Egress Windows / Emergency Escape | NH Building Code (IRC adoption) | **REQUIRED** | Verified during building inspection | Included in construction cost | Every sleeping room must have emergency escape/rescue opening meeting code dimensions. |
|
|
77
|
+
| [ ] | 4.5 | Fire Extinguisher | General safety practice | **RECOMMENDED** | Before occupancy | ~$20–$40 | Not legally mandated for residential rental but advisable. |
|
|
78
|
+
| [ ] | 4.6 | Concord Fire Department Inspection | Concord Fire Department | **RECOMMENDED** | Schedule via permit portal; **[VERIFY]** — may be required as part of CO process | **[VERIFY]** — fee if separate from building permit process | Some municipalities require fire dept sign-off before CO is issued. Confirm with Concord Fire Dept whether this is required or voluntary for ADU. |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Category 5: Insurance & Ongoing Obligations
|
|
83
|
+
|
|
84
|
+
| [ ] | # | Item | Issuing Authority | Status | Est. Timeline | Est. Fee | Notes |
|
|
85
|
+
|-----|---|------|-------------------|--------|---------------|----------|-------|
|
|
86
|
+
| [ ] | 5.1 | Landlord / Rental Property Insurance Policy | Private insurance carrier | **RECOMMENDED** | Obtain before first tenant occupancy | **[VERIFY]** — varies by carrier; typical $800–$1,500/year for small rental | No NH state mandate, but essential risk management. Covers structure, liability, loss of rental income. Homeowner's policy typically does NOT cover rental activity — separate landlord policy needed. |
|
|
87
|
+
| [ ] | 5.2 | Umbrella Liability Policy | Private insurance carrier | **RECOMMENDED** | Obtain concurrent with landlord policy | **[VERIFY]** — varies; typical $200–$400/year for $1M coverage | Additional liability protection beyond landlord policy limits. Advisable when renting on same property where owners reside. |
|
|
88
|
+
| [ ] | 5.3 | Require Tenant Renter's Insurance | Lease term (landlord's discretion) | **OPTIONAL** | Include as lease requirement | No cost to landlord | Can require tenant to maintain renter's insurance and name landlord as additional insured. Common practice. |
|
|
89
|
+
| [ ] | 5.4 | Security Deposit Escrow Account | NH bank (RSA 540-A) | **REQUIRED** | Open before collecting any deposit | No fee (standard bank account) | Must be separate account at a NH bank. Must pay tenant interest at bank's rate. |
|
|
90
|
+
| [ ] | 5.5 | Annual Lead Paint Disclosure Renewal | Federal / RSA 540-B | **REQUIRED** | At each lease renewal | No fee | Must re-provide lead paint disclosure and pamphlet at lease renewal. |
|
|
91
|
+
| [ ] | 5.6 | Housing Code Compliance (Ongoing) | Concord Code Administration — Housing Division | **REQUIRED** | Ongoing throughout tenancy | No fee unless violations found | Concord Chapter 27: Housing Maintenance and Occupancy Code. Complaint-based enforcement. Landlord must maintain property to code standards (ventilation, sanitation, structural integrity, fire safety). |
|
|
92
|
+
| [ ] | 5.7 | Landlord Registration Renewal | Concord City Clerk's Office | **REQUIRED** | **[VERIFY]** — confirm whether annual renewal required or one-time filing | **[VERIFY]** — $15 if annual | Check with City Clerk whether registration is one-time or requires periodic renewal. |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Summary
|
|
97
|
+
|
|
98
|
+
| Status | Count |
|
|
99
|
+
|--------|-------|
|
|
100
|
+
| REQUIRED | 26 items |
|
|
101
|
+
| RECOMMENDED | 6 items |
|
|
102
|
+
| OPTIONAL | 1 item |
|
|
103
|
+
| **Total** | **33 items** |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Critical Path Items (Must Complete Before Renting)
|
|
108
|
+
|
|
109
|
+
These items are gating — the ADU cannot be legally rented until all are satisfied:
|
|
110
|
+
|
|
111
|
+
1. Building permit obtained and all construction inspections passed (Items 1.2–1.6, 2.1–2.9)
|
|
112
|
+
2. Certificate of Occupancy issued (Item 2.10)
|
|
113
|
+
3. Landlord/Agent Registration filed (Item 3.1)
|
|
114
|
+
4. Lead paint disclosure completed and signed (Items 3.2, 3.3)
|
|
115
|
+
5. Smoke and CO detectors installed and operational (Items 4.1, 4.2)
|
|
116
|
+
6. Security deposit escrow account established (Item 5.4)
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## [VERIFY] Items Summary
|
|
121
|
+
|
|
122
|
+
The following items require verification with the relevant authority, as specific details could not be confirmed from available research:
|
|
123
|
+
|
|
124
|
+
| Item | What to Verify | Contact |
|
|
125
|
+
|------|----------------|---------|
|
|
126
|
+
| 1.1 | ZBA variance fee (for records) | Concord Planning Division |
|
|
127
|
+
| 1.2–1.5 | Building and trade permit fees | Code Admin, (603) 225-8580 |
|
|
128
|
+
| 1.6 | Sewage disposal approval process for municipal sewer | NH DES / Concord Utilities |
|
|
129
|
+
| 2.6 | Fire separation inspection — separate fee or included | Code Admin / Fire Dept |
|
|
130
|
+
| 2.10 | CO fee — separate or included in building permit | Code Admin |
|
|
131
|
+
| 3.7 | Concord-specific radon disclosure requirement | Code Admin / City Clerk |
|
|
132
|
+
| 4.6 | Whether fire dept inspection is required for CO | Concord Fire Dept, via permit portal |
|
|
133
|
+
| 5.1, 5.2 | Insurance premium estimates for this specific property | Insurance broker |
|
|
134
|
+
| 5.7 | Whether landlord registration requires annual renewal | City Clerk, (603) 225-8610 |
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Key Contacts
|
|
139
|
+
|
|
140
|
+
| Authority | Address | Phone |
|
|
141
|
+
|-----------|---------|-------|
|
|
142
|
+
| Code Administration Division | 37 Green St, Concord, NH | (603) 225-8580 |
|
|
143
|
+
| City Clerk's Office | 41 Green St, Concord, NH | (603) 225-8610 |
|
|
144
|
+
| Concord Fire Department | via online permit portal | — |
|
|
145
|
+
| NH Dept of Environmental Services (NH DES) | 29 Hazen Dr, Concord, NH | (603) 271-3503 |
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
*This checklist is for informational planning purposes. Consult with a licensed attorney and/or the relevant municipal offices to confirm current requirements.*
|