{
  "slug": "railway-flag-adds-feature-flag-management-013cc5975415",
  "title": "railway flag adds feature flag management",
  "tools": [
    "railway"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-07-07T17:31:47.000Z",
  "announced_at": "2026-07-07T17:31:47.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When managing feature flags for a linked Railway project workspace, use `railway flag` to list flags, set defaults or targeting rules, re-type flags, delete flags, and remove rules.",
    "examples": [
      "railway flag list --full",
      "railway flag set <name> <value> --when '<CEL expression>'",
      "railway flag set <name> <value> --type <bool|string|number|json> --force"
    ],
    "gotchas": [
      "Version: v5.24.0",
      "name (required): Flag name.",
      "value (required): Default value, or rule value when `--when` is passed. Type is inferred when `--type` is omitted.",
      "--when <expression>: CEL expression subset for a targeting rule; raw JSON is also accepted.",
      "--rule-id <id>: Stable rule ID for `--when`; defaults to a hash of flag name and expression. Required by `unset` to identify the rule to remove.",
      "--type <type>: Flag type: `bool`, `string`, `number`, or `json`; inferred from value if omitted.",
      "--force: Allow replacing an existing flag's type; rules are cleared when the type changes.",
      "--full: For list output, show rule IDs and empty rule sections.",
      "--owner <owner>: Select flag scope, such as `workspace:<id>` or `project:<id>`; defaults to the linked project's workspace.",
      "Prerequisite: Link a Railway project with `railway link` to use its workspace as the default flag scope.",
      "Prerequisite: A targeting rule requires the named flag to exist; create it with `railway flag set <name> <value>` first.",
      "The `--when` CEL-style syntax supports a subset of predicates; raw JSON is also accepted as an escape hatch.",
      "Values are inferred from values such as `true`, `42`, `\"blue\"`, and JSON objects.",
      "Re-typing an existing flag with `--force --type` clears its rules when the type changes."
    ]
  },
  "why_it_matters": "Manage feature flags for a linked Railway project workspace from the CLI.",
  "sources": [
    "https://github.com/railwayapp/cli/releases/tag/v5.24.0",
    "https://github.com/railwayapp/cli/pull/997",
    "https://github.com/railwayapp/cli/blob/v5.24.0/src/commands/flag.rs"
  ],
  "rank": 0.98032,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave1b-20261016",
    "verdict_id": "wave1b-20261016:wave1b-20261016-6e1357a378c36d11-0:gate",
    "evidence_hash": "20553a4f4ea8c504e197fa75aaf10a417304d6915cff3867b9bb5510f912bd5b"
  },
  "review": {
    "draft_hash": "00a84f185d931b9be8d70bccce479c153ea198f9a28afd854cd74e14d4c74a6c",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave1b-20261016:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.98 >= 0.9; 2 needed) and Jev gave 0.78 (>= 0.6 needed)."
  }
}
