mirror of
https://github.com/Hestia-Homes/assessment-model.git
synced 2026-06-08 11:37:25 +00:00
added backlog to help me manage claude things
This commit is contained in:
parent
b81a1aaf61
commit
0afb2c14c7
14 changed files with 190 additions and 6931 deletions
|
|
@ -23,6 +23,9 @@ RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|||
&& node -v \
|
||||
&& npm -v
|
||||
|
||||
# Install Backlog.md (task/todo CLI: https://github.com/MrLesk/Backlog.md)
|
||||
RUN npm install -g backlog.md
|
||||
|
||||
# # Install aws
|
||||
# RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
# RUN unzip awscliv2.zip
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
"remoteUser": "vscode",
|
||||
"workspaceFolder": "/workspaces/assessment-model",
|
||||
"postStartCommand": "bash .devcontainer/post-install.sh",
|
||||
"forwardPorts": [3000], # For vscode
|
||||
"appPort": ["3000:3000"], # For devcontainer shell
|
||||
"forwardPorts": [3000, 6420], # 3000 = Next.js, 6420 = Backlog.md browser
|
||||
"appPort": ["3000:3000", "6420:6420"], # For devcontainer shell
|
||||
"mounts": [
|
||||
// Optional, just makes getting from Downloads (local env) easier
|
||||
"source=${localEnv:HOME},target=/workspaces/home,type=bind"
|
||||
|
|
|
|||
9
.mcp.json
Normal file
9
.mcp.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"mcpServers": {
|
||||
"backlog": {
|
||||
"type": "stdio",
|
||||
"command": "backlog",
|
||||
"args": ["mcp", "start"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7,3 +7,11 @@
|
|||
## Next.js 15 route handlers
|
||||
|
||||
- `params` is a `Promise` — type as `{ params: Promise<{ ... }> }` and `await params` before destructuring.
|
||||
|
||||
## Task tracking — Backlog.md
|
||||
|
||||
- Project uses [Backlog.md](https://github.com/MrLesk/Backlog.md) for manual/human todos (CLI `backlog`, web UI on port 6420).
|
||||
- MCP server is wired via `.mcp.json` — tools exposed under the `backlog` server. Use those tools instead of shelling out when possible.
|
||||
- Tasks live as markdown under `backlog/tasks/`. Committed to git. Read them for context on outstanding manual work (env vars, IAM, infra) owed by humans.
|
||||
- To start the web UI during development: `backlog browser` (port 6420, forwarded by devcontainer).
|
||||
- Do NOT mirror Backlog.md tasks into Claude's internal todo system. Use one or the other — Backlog for durable cross-session work, internal todos for within-turn progress tracking.
|
||||
|
|
|
|||
14
backlog/config.yml
Normal file
14
backlog/config.yml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
project_name: "assessment-model"
|
||||
default_status: "To Do"
|
||||
statuses: ["To Do", "In Progress", "Done"]
|
||||
labels: []
|
||||
date_format: yyyy-mm-dd
|
||||
max_column_width: 20
|
||||
auto_open_browser: false
|
||||
default_port: 6420
|
||||
remote_operations: false
|
||||
auto_commit: false
|
||||
bypass_git_hooks: false
|
||||
check_active_branches: true
|
||||
active_branch_days: 30
|
||||
task_prefix: "task"
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
id: TASK-1
|
||||
title: Add BULK_ADDRESS2UPRN_COMBINER_QUEUE_NAME to staging and prod env
|
||||
status: To Do
|
||||
assignee:
|
||||
- Jun-te Kim
|
||||
created_date: '2026-04-18 19:01'
|
||||
labels:
|
||||
- env
|
||||
- infra
|
||||
dependencies: []
|
||||
priority: high
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Dev .env.local has it; non-dev envs still missing. Combine route returns 500 'Server misconfiguration' without it.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 Value set in staging env: bulk-address2uprn-combiner-queue-staging (or matching stage suffix)
|
||||
- [ ] #2 Value set in prod env: bulk-address2uprn-combiner-queue-prod
|
||||
- [ ] #3 Deploy redeployed; /api/portfolio/{pid}/bulk-uploads/{uid}/combine returns 200 not 500
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
id: TASK-2
|
||||
title: 'Grant sqs:SendMessage IAM on combiner queue to assessment-model runtime'
|
||||
status: To Do
|
||||
assignee:
|
||||
- Jun-te Kim
|
||||
created_date: '2026-04-18 19:01'
|
||||
labels:
|
||||
- infra
|
||||
- iam
|
||||
dependencies: []
|
||||
priority: high
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Combine route sends to bulk-address2uprn-combiner-queue-<stage>. Runtime role needs sqs:SendMessage + sqs:GetQueueUrl on that queue ARN.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 IAM policy updated in terraform for staging + prod
|
||||
- [ ] #2 Verified via AWS console or 'aws sqs get-queue-url' using runtime creds
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
id: TASK-3
|
||||
title: Deploy bulk_address2uprn_combiner Lambda + queue via terraform to staging/prod
|
||||
status: To Do
|
||||
assignee:
|
||||
- Jun-te Kim
|
||||
created_date: '2026-04-18 19:01'
|
||||
labels:
|
||||
- infra
|
||||
- terraform
|
||||
dependencies: []
|
||||
priority: high
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Lambda source at /workspaces/home/github/Model/backend/bulk_address2uprn_combiner/. Uses lambda_with_sqs module. Needs S3_BUCKET_NAME=retrofit_sap_data_bucket_name and DB creds envs. Confirm queue name convention bulk-address2uprn-combiner-queue-<stage>.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 Lambda + queue exist in staging
|
||||
- [ ] #2 Lambda + queue exist in prod
|
||||
- [ ] #3 Lambda has read on ara_raw_outputs/ and write on bulk_final_outputs/ in retrofit_sap_data bucket
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
id: TASK-4
|
||||
title: Smoke-test combiner end-to-end on dev
|
||||
status: To Do
|
||||
assignee:
|
||||
- Jun-te Kim
|
||||
created_date: '2026-04-18 19:02'
|
||||
labels:
|
||||
- qa
|
||||
- bulk-upload
|
||||
dependencies: []
|
||||
priority: medium
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
After env var + IAM ready, run a real bulk upload -> map columns -> onboard -> wait for terminal complete. Confirm combiner fires.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 POST /combine returns 200 with {taskId, subTaskId}
|
||||
- [ ] #2 CloudWatch for bulk_address2uprn_combiner shows the subtask picked up
|
||||
- [ ] #3 bulk_final_outputs/{task_id}/combined_<timestamp>.csv exists in retrofit_sap_data bucket
|
||||
- [ ] #4 bulk_address_uploads.combined_output_s3_uri populated for the test upload
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
id: TASK-5
|
||||
title: >-
|
||||
Squash migrations 0178 (DROP) + 0179 (re-ADD) next time bulk_address_uploads
|
||||
touched
|
||||
status: Done
|
||||
assignee:
|
||||
- Jun-te Kim
|
||||
created_date: '2026-04-18 19:02'
|
||||
updated_date: '2026-04-18 19:06'
|
||||
labels:
|
||||
- tech-debt
|
||||
- db
|
||||
dependencies: []
|
||||
priority: low
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
0178 DROPs task_id + combined_output_s3_uri; 0179 re-ADDs them. Net-zero on live, wasted churn on fresh envs. Collapse to single migration next time schema changes in this area.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
<!-- SECTION:NOTES:BEGIN -->
|
||||
Squashed in-place: deleted 0179.sql + 0179_snapshot.json, removed from _journal.json, patched 0178_snapshot.json to include task_id + combined_output_s3_uri cols. Orphan row may remain in live __drizzle_migrations but drizzle tolerates it.
|
||||
<!-- SECTION:NOTES:END -->
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
ALTER TABLE "bulk_address_uploads" ADD COLUMN "task_id" uuid;--> statement-breakpoint
|
||||
ALTER TABLE "bulk_address_uploads" ADD COLUMN "combined_output_s3_uri" text;
|
||||
|
|
@ -303,6 +303,18 @@
|
|||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"task_id": {
|
||||
"name": "task_id",
|
||||
"type": "uuid",
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"combined_output_s3_uri": {
|
||||
"name": "combined_output_s3_uri",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"created_at": {
|
||||
"name": "created_at",
|
||||
"type": "timestamp with time zone",
|
||||
|
|
@ -6467,8 +6479,8 @@
|
|||
"schema": "public",
|
||||
"values": [
|
||||
"none",
|
||||
"cladded with “sufficient space to fill the wall”",
|
||||
"cladded with “insufficient space to fill the wall”"
|
||||
"cladded with \u201csufficient space to fill the wall\u201d",
|
||||
"cladded with \u201cinsufficient space to fill the wall\u201d"
|
||||
]
|
||||
},
|
||||
"public.inspections_insulation_material": {
|
||||
|
|
@ -6495,8 +6507,8 @@
|
|||
"schema": "public",
|
||||
"values": [
|
||||
"no render",
|
||||
"rendered with “insufficient” space between dpc and render",
|
||||
"rendered with “sufficient” space between dpc and render"
|
||||
"rendered with \u201cinsufficient\u201d space between dpc and render",
|
||||
"rendered with \u201csufficient\u201d space between dpc and render"
|
||||
]
|
||||
},
|
||||
"public.inspections_roof_orientation": {
|
||||
|
|
@ -6850,13 +6862,13 @@
|
|||
"schema": "public",
|
||||
"values": [
|
||||
"1",
|
||||
"2–5",
|
||||
"6–20",
|
||||
"2\u20135",
|
||||
"6\u201320",
|
||||
"21+",
|
||||
"1–50",
|
||||
"51–100",
|
||||
"101–300",
|
||||
"301–1000",
|
||||
"1\u201350",
|
||||
"51\u2013100",
|
||||
"101\u2013300",
|
||||
"301\u20131000",
|
||||
"1000+"
|
||||
]
|
||||
},
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1254,13 +1254,6 @@
|
|||
"when": 1776458454019,
|
||||
"tag": "0178_parched_midnight",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 179,
|
||||
"version": "7",
|
||||
"when": 1776459924335,
|
||||
"tag": "0179_mighty_cardiac",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue