Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5823ec0
feat: add --source and --schema flags to mcp serve
jpower432 Jun 8, 2026
0b64647
fix: remove hardcoded version and add test for buildConfigFromFlags
jpower432 Jun 8, 2026
ae6c62b
build: add Containerfile for container distribution
jpower432 Jun 8, 2026
62927c1
ci: add container image build and push workflow
jpower432 Jun 8, 2026
87b1634
feat: add multi-platform plugin manifests
jpower432 Jun 8, 2026
1ee43bd
docs: add multi-platform install instructions
jpower432 Jun 8, 2026
2378fea
fix: add CA certificates to container image
jpower432 Jun 8, 2026
7a822ce
fix: pin workflow refs and container base image
jpower432 Jun 9, 2026
8884086
chore: apply suggestions from code review
jpower432 Jun 10, 2026
38622a4
chore: update gemini-extension.json
jpower432 Jun 10, 2026
2627c97
fix: allow --schema flag without --source in mcp serve
jpower432 Jun 12, 2026
3a49369
fix: rename .mcp.json to .mcp.json.example
jpower432 Jun 12, 2026
d481809
fix: address container workflow review feedback
jpower432 Jun 12, 2026
9677286
feat: add parameter delta engine, scope filter, and resource listing
jpower432 Jun 13, 2026
0e3aec5
feat: add /comply plugin with pipeline, pack, and setup skills
jpower432 Jun 13, 2026
ca024de
docs: add ADRs 012-015 for container, CLI flags, delta engine, and co…
jpower432 Jun 13, 2026
b439ef7
refactor: simplify delta engine to gatherer, remove heuristics
jpower432 Jun 13, 2026
5ba48a1
fix: updates gemara version in adherence skill
jpower432 Jun 13, 2026
8dc09c6
fix: update mapping skill to match gatherer-based delta engine
jpower432 Jun 13, 2026
0b429b4
fix: allow get_assessment_requirements to accept catalog names
jpower432 Jun 15, 2026
ac4d16d
docs: refine working on new ADRs
jpower432 Jun 15, 2026
fbdf44b
fix: update Policy snippet in adherence skills to schema valid example
jpower432 Jun 15, 2026
464fa38
fix: correct adherence skill Policy snippet to match Gemara schema
jpower432 Jun 15, 2026
124f3d9
fix: remove unused findGuidelineParameter function
jpower432 Jun 15, 2026
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
23 changes: 23 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "comply",
"displayName": "ComplyPack",
"version": "0.1.0",
"description": "Gemara compliance pipeline and policy generation via MCP server",
"author": {
"name": "ComplyTime Authors",
"url": "https://github.com/complytime"
},
"homepage": "https://github.com/complytime/complypack",
"repository": "https://github.com/complytime/complypack",
"license": "Apache-2.0",
"keywords": [
"compliance",
"rego",
"opa",
"gemara",
"policy",
"mcp",
"audit",
"governance"
]
}
22 changes: 22 additions & 0 deletions .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "comply",
"displayName": "ComplyPack",
"version": "0.1.0",
"description": "Gemara compliance pipeline and policy generation via MCP server",
"author": {
"name": "ComplyTime Authors",
"url": "https://github.com/complytime"
},
"repository": "https://github.com/complytime/complypack",
"license": "Apache-2.0",
"keywords": [
"compliance",
"rego",
"opa",
"gemara",
"policy",
"mcp",
"audit",
"governance"
]
}
12 changes: 12 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.git
.github
.complytime
.cursor
.opencode
docs
kb
skills
tests
acceptance
*.md
!LICENSE
61 changes: 61 additions & 0 deletions .github/workflows/container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Container Image

on:
push:
tags:
- 'v*'
branches:
- main

permissions:
contents: read

jobs:
push:
uses: complytime/org-infra/.github/workflows/reusable_publish_ghcr.yml@e266be092e71ac9343fcd6d5cafc50402161981e # main
permissions:
contents: read
packages: write
actions: read
id-token: write
attestations: write
with:
component_name: complypack
containerfile_path: Containerfile
context_path: .
image_name: complytime/complypack
image_description: "ComplyPack MCP server for compliance policy generation"
platforms: linux/amd64,linux/arm64

scan:
needs: push
if: >-
always()
&& needs.push.result == 'success'
&& needs.push.outputs.image != ''
uses: complytime/org-infra/.github/workflows/reusable_trivy_image_scan.yml@e266be092e71ac9343fcd6d5cafc50402161981e # main
permissions:
contents: read
packages: write
security-events: write
id-token: write
with:
image_ref: ${{ needs.push.outputs.image }}:${{ needs.push.outputs.tag }}
image_digest: ${{ needs.push.outputs.digest }}
trivy_severity: HIGH,CRITICAL

sign:
needs: [push, scan]
if: >-
always()
&& needs.push.result == 'success'
uses: complytime/org-infra/.github/workflows/reusable_sign_and_verify.yml@e266be092e71ac9343fcd6d5cafc50402161981e # main
permissions:
contents: read
packages: write
id-token: write
with:
image_name: ${{ needs.push.outputs.image }}
digest: ${{ needs.push.outputs.digest }}
allowed_identity_regex: "https://github.com/complytime/org-infra(/.*)?$"
verify_vuln: ${{ needs.scan.result == 'success' }}
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,11 @@ go.work.sum
.DS_Store
Thumbs.db

# Local docs (plans, analysis)
# Local docs (plans, analysis, specs, demos)
docs/plans/
docs/analysis/
docs/superpowers/
docs/demo/

# Development tooling
.opencode/
Expand Down
8 changes: 0 additions & 8 deletions .mcp.json

This file was deleted.

12 changes: 12 additions & 0 deletions .mcp.json.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"mcpServers": {
"complypack": {
"command": "docker",
"args": ["run", "--rm", "-i",
"ghcr.io/complytime/complypack:VERSION",
"mcp", "serve",
"--source", "oci://YOUR_REGISTRY/gemara/YOUR_CATALOG:TAG",
"--schema", "YOUR_PLATFORM"]
}
}
}
17 changes: 17 additions & 0 deletions Containerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM golang:1.26-alpine AS builder

WORKDIR /build
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o complypack ./cmd/complypack

FROM registry.access.redhat.com/ubi9-micro:9.6-4@sha256:b498b3ea26111ab4b81d65139f2ebd2ef9a2abb7a4588b7fdcc54889f95e9caa

COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt
COPY --from=builder /build/complypack /usr/local/bin/complypack

ARG USER_UID=10001
USER ${USER_UID}

ENTRYPOINT ["complypack"]
107 changes: 107 additions & 0 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Installing ComplyPack

ComplyPack is a plugin that provides a compliance policy generation skill and
an MCP server for working with Gemara catalogs.

## Prerequisites

- Docker or Podman (Fedora users: `sudo dnf install podman-docker`)

## Claude Code

Install from the marketplace:

```
/plugin install complypack@claude-plugins-official
```

The skill is auto-discovered. To configure the MCP server, create a
`.mcp.json` in your project:

```json
{
"mcpServers": {
"complypack": {
"command": "docker",
"args": ["run", "--rm", "-i",
"ghcr.io/complytime/complypack:latest",
"mcp", "serve",
"--source", "oci://your-registry/gemara/your-catalog:v1",
"--schema", "ci"]
}
}
}
```

Replace the `--source` and `--schema` values with your Gemara catalog
references and target platforms.

### Multiple sources and schemas

```json
"args": ["run", "--rm", "-i",
"ghcr.io/complytime/complypack:latest",
"mcp", "serve",
"--source", "oci://registry.example.com/gemara/controls:v1",
"--source", "oci://registry.example.com/gemara/guidance:v1",
"--schema", "ci=cue://cue.dev/x/githubactions@v0#Workflow",
"--schema", "kubernetes"]
```

### Plain HTTP registries (development)

Use `oci+http://` for registries without TLS:

```json
"--source", "oci+http://localhost:5001/gemara/controls:v1"
```

## OpenCode

Add to your `opencode.json`:

```json
{
"mcpServers": {
"complypack": {
"command": "docker",
"args": ["run", "--rm", "-i",
"ghcr.io/complytime/complypack:latest",
"mcp", "serve",
"--source", "oci://your-registry/gemara/your-catalog:v1",
"--schema", "ci"]
}
}
}
```

## Using a config file (advanced)

If you prefer YAML configuration, mount a `complypack.yaml`:

```json
"args": ["run", "--rm", "-i",
"-v", "./complypack.yaml:/config/complypack.yaml:ro",
"ghcr.io/complytime/complypack:latest",
"mcp", "serve",
"--config", "/config/complypack.yaml"]
```

## Verifying the image

Images include SLSA provenance and SBOM attestations. To verify:

```
gh attestation verify oci://ghcr.io/complytime/complypack:latest \
--owner complytime
```

## Embedded schemas

These platforms have built-in schemas (no `--schema source` needed):

- `kubernetes`
- `terraform`
- `docker`
- `ansible`
- `ci`
Loading
Loading