CASE STUDY · DEVELOPER TOOLING

Agentify: Controlled multi-agent coding workflows

A repository-specific engineering workflow that turns authorised GitHub issues into validated draft pull requests, with scoped edits, separate review, and human-controlled merging.

1
Source Writer
Single bounded builder receives application-source write authority
Scoped
Path Boundaries
Edits restricted strictly to maintainer-approved candidate paths
Trusted
Repository Checks
Trusted harness executes maintainer-configured validation commands
Human
Merge Authority
Draft PR output leaves ultimate merge decision with the maintainer
01 / Challenge & Context

01 / Problem & ownership

Balancing automated assistance with maintainer control and auditability.

I built Agentify to make automated coding work easier to constrain, inspect, and review. The challenge was not only generating a useful change, but deciding which parts of the workflow an agent should be allowed to control.

Agentify separates planning, implementation, validation, review, and publication. Models contribute reasoning and proposed work, while trusted code checks repository identity, scope, state, and evidence before performing privileged operations.

In production software engineering, developers cannot trust a black-box agent with blanket shell and write permissions. An agent must never modify arbitrary files, must never certify its own implementation as 'correct', and must never merge autonomously to the default branch.

CONTROL BOUNDARIES
Unbounded Agents vs. Scoped Workflows
Arbitrary Filesystem WritesUnbounded
Unconstrained agents edit config files, lockfiles, and unintended paths.
Approved-Path EnforcementAgentify
Builder write access is strictly locked to approved candidate paths.
Self-Certified VerificationUnbounded
Agents may overlook test failures or report incomplete checks.
Separate Review & Draft PRAgentify
Read-only reviewer audits diff; human maintainer retains merge authority.
02 / System Architecture

02 / How it works

Deterministic orchestration from authorized GitHub issue to draft PR delivery.

Agentify installs into an existing GitHub repository. Maintainers submit or approve issues containing acceptance criteria and explicit candidate paths.

A persistent orchestrator works with a read-only planner and repository specialists to develop an implementation plan. One builder receives source-write authority on a task branch. After implementation, trusted code captures the changes and runs the approved repository checks.

A separate read-only reviewer evaluates the plan, diff, evidence, and acceptance criteria. Successful work is published as an unmerged draft pull request. The maintainer retains the final merge decision.

Architecture Flow
01GitHub CLI · Auth
Issue Intake & Auth
Verifies actor authority, repo identity, acceptance criteria, and base commit.
02Read-only AST
Orchestrator & Planner
Builds a typed implementation plan restricted to maintainer-approved paths.
03Task Branch
Bounded Builder
Single writer on a dedicated task branch; prohibited from modifying unapproved paths.
04Draft PR Output
Validation & Review
Trusted harness runs repository checks; separate read-only reviewer audits diff.
03 / Algorithmic Deep-Dive

03 / Engineering decisions

Role segregation, repository policy enforcement, and accepted-commit learning.

One source writer: Planning and review roles do not receive application-source write authority. The builder operates within an approved path set, and trusted checks reject scope violations.

Validation bound to repository policy: Validation commands and relevant repository files are recorded during installation. Policy drift disables issue intake until the configuration is reviewed again.

Knowledge refresh after acceptance: Repository knowledge is updated from an accepted default-branch commit rather than treating an unmerged proposal as established repository truth. This updates stored context, not model weights.

Agentify Multi-Agent Orchestration & Authority Separation Architecture
src/core/task-lifecycle/validation-runner.ts (simplified excerpt)typescript
// Trusted Validation Runner Execution
import { spawn } from "node:child_process";

export async function runValidationPlan(
  repoPath: string,
  command: string,
  args: string[],
  env: NodeJS.ProcessEnv
): Promise<ValidationExecutionResult> {
  return new Promise((resolve) => {
    const child = spawn(command, args, {
      cwd: repoPath,
      env: sanitizeEnvironment(env),
      stdio: ["ignore", "pipe", "pipe"],
    });

    let stdout = "";
    let stderr = "";
    child.stdout.on("data", (d) => { stdout += d; });
    child.stderr.on("data", (d) => { stderr += d; });

    child.on("close", (exitCode) => {
      resolve({
        passed: exitCode === 0,
        exitCode: exitCode ?? -1,
        stdout,
        stderr,
      });
    });
  });
}
04 / Production & Reliability

04 / Evidence & limitations

Current test boundaries and security model scope.

Agentify is an early public project. Its current evidence includes maintainer-controlled qualification, security tests, and exact-package tests. It does not yet establish independent production adoption.

The controls constrain tool use, paths, publication, and access to GitHub write credentials. Repository validation remains unsandboxed and is not network-isolated. Automated review adds a separate assessment, but does not replace human review.

Core Engine
Node.jsTypeScriptMulti-Agent State MachineGit Automation
Supported Ecosystems
TypeScript/JavaScriptPythonRustGoJavaRuby
Security Controls
Approved Path ChecksCredential SeparationPolicy Drift Detection
Integrations
GitHub CLIGitHub REST APIDraft PR Workflow
Explore the Source & Live System
View live implementation, documentation, and repository commits.