# Humand Backend

Backend engineering plugin for the Humand platform. Provides skills for scaffolding Java/Spring Boot services, adding Kafka CDC consumers, reviewing Terraform plans, generating infrastructure, migrating Lambda functions from Ansible to Terraform, creating Athena tables from S3 logs, and documenting FE-facing changes in the Node/TypeScript backend.

## Skills

### add-java-kafka-cdc-consumer

Interactive workflow to add a Debezium CDC consumer to a Java/Spring Boot service. Discovers patterns from sibling repos, scans migrations for table definitions, and generates event models, listeners, services, repositories, KafkaConfiguration, Terraform, and integration tests.

### kickoff-java-project

Scaffolds a new Java 25 Maven monorepo with Spring Boot 4, Liquibase, Hibernate or jOOQ, JaCoCo aggregate, Terraform infrastructure, and CI workflows. Reads patterns from reference repos (Janus/Cerberus).

### review-tf-plan

Reviews Terraform plan output for red flags before applying. Flags ECS service destruction, deferred data sources, `depends_on` cascades, and high blast radius changes. Returns a PASS/WARN/FAIL verdict.

### migrate-lambda-ansible-to-terraform

Migrates a Humand Lambda repo from the deprecated Ansible-based deployment (`platform-ecs-deployment` playbooks, `cd.yml`, `config/*.yml`) to Terraform with the `DataDog/lambda-datadog/aws` module, S3 backend state, per-env GitHub Actions workflows, and `tf-checks` PR validation. Includes optional Node runtime upgrade and a Lambda Layer subworkflow for functions that bundle native binaries.

### add-athena-table-from-logs

Creates an AWS Athena external table over a Humand service's S3 log archive (`s3://humand-logs-{env}/ECS/...`). Samples a real log file from S3, classifies the JSON schema by logger family (Pino for Node.js services or Logstash for Java/Spring Boot services), and emits a ready-to-run `CREATE EXTERNAL TABLE` DDL with partition projection. Includes inline DDL templates for both families, SerDe `mapping.*` cookbook for Logstash's dotted and `@`-prefixed JSON keys, smoke-test instructions, and pitfalls from real-world use.

### document-node-be-changes-for-fe

Manual workflow (model invocation disabled) for the Node/TypeScript backend (`humand-main-api`). Produces one markdown doc per branch under `docs/api-changes/<branch>.md` describing every FE-facing contract change — request/response shapes, defaults, errors, behavior, validations — so frontend developers can update their typed clients. Covers APP and BO scopes only; excludes Public API and gRPC.

## Agents (prompt templates)

These are prompt templates used by the skills when launching subagent tasks:

| Agent | Used by | Mode |
|-------|---------|------|
| `repo-cdc-analyzer` | add-java-kafka-cdc-consumer | Read-only analysis |
| `migration-table-scanner` | add-java-kafka-cdc-consumer | Read-only analysis |
| `kafka-infra-generator` | add-java-kafka-cdc-consumer | Writes Terraform + YAML |
| `kickoff-reference-reader` | kickoff-java-project | Read-only analysis |
| `kickoff-infra-generator` | kickoff-java-project | Writes Terraform + workflows |
| `tf-plan-reviewer` | review-tf-plan | Read-only analysis |
| `lambda-ansible-config-analyzer` | migrate-lambda-ansible-to-terraform | Read-only analysis |
| `lambda-terraform-scaffolder` | migrate-lambda-ansible-to-terraform | Writes Terraform + workflows |

## No Setup Required

All skills are fully standalone. When run, they ask for inputs interactively — no config files needed. Just install the plugin and use it.

## Source

These skills originate from [humand-dev-workflow](https://github.com/Humand/humand-dev-workflow). When improvements are made upstream, update this plugin manually.
