WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Suggestion: Nickel is a great format for AI research results #2320

@keithy

Description

@keithy

When asking AI to research github projects and how to build them, whether or not there were nightly builds and so forth, having the output of the research in nickel was marvelous.

let config = import "./research.ncl" in
{
  watch = config.schedule.nightly,
  order = 10,  # Lower numbers processed first
}
# Configuration for Charm Crush pipeline
# Created by Claude Code from research on:
# - charmbracelet/crush GitHub repository structure and build process
# - Go version requirements (Task-based builds, GoReleaser setup)
# - Nightly build patterns and CI/CD practices
# - Container configuration best practices for Go applications
# - System dependencies and multi-platform build targets
{
  # Available resources to watch
  resources = {
    main_branch = {
      type = 'github,
      owner = "charmbracelet",
      repo = "crush",
      branch = "main",
      track = 'commits,
      file_filter = ["**/*.go", "go.mod", "go.sum", "Dockerfile", "Taskfile.yaml"],
    },
    
    releases = {
      type = 'github,
      owner = "charmbracelet",
      repo = "crush",
      track = 'releases,
    },
    
    develop_branch = {
      type = 'github,
      owner = "charmbracelet",
      repo = "crush",
      branch = "develop",
      track = 'commits,
      file_filter = ["**/*.go", "go.mod", "go.sum"],
    },
  },
  
  # Build configuration for Crush
  build_config = {
    go_version = "1.22",
    targets = ["linux/amd64", "linux/arm64", "darwin/amd64", "darwin/arm64", "windows/amd64"],
    test_commands = [
      "go test ./...", 
      "go vet ./...",
      "golangci-lint run",
    ],
    build_commands = [
      "task build",
      "task test",
    ],
    artifacts = [
      "dist/*",
    ],
  },
  
  # Container configuration
  container_config = {
    base_image = "golang:1.22-alpine",
    build_args = {
      VERSION = "$GITHUB_SHA",
      BUILD_DATE = "$BUILD_DATE",
    },
    labels = {
      "org.opencontainers.image.source" = "https://github.com/charmbracelet/crush",
      "org.opencontainers.image.title" = "Crush",
      "org.opencontainers.image.description" = "The glamourous AI coding agent for your favourite terminal",
    },
  },
  
  # Nightly build configuration
  schedule = {
    nightly = {
      cron = "0 2 * * *",  # 2 AM UTC daily
      timezone = "UTC",
      source = resources.main_branch,
    },
  },
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions