Intelligence

Artifacts

Browse the repository, read documents, and manage the governance folders. Source, runtime, and infrastructure are read-only.

Repository
README.md
CONSTITUTION_COMPLIANCE_AUDIT_V1.mdREADME.md
repositories/aaf-holdings/hq01/app/assignments/page.tsx
1.7 KB
import { GitBranch } from "lucide-react";
import { PageHeader } from "@/components/layout/page-header";
import { StatusBadge } from "@/components/shared/status-badge";
import { RecordRow, RecordList } from "@/components/shared/record-row";
import { EmptyState } from "@/components/shared/empty-state";
import { getAssignments } from "@/lib/content/assignments";

export const dynamic = "force-dynamic";
export const metadata = { title: "Assignments" };

export default function AssignmentsPage() {
  const assignments = getAssignments();

  return (
    <div>
      <PageHeader
        eyebrow="Operate"
        title="Assignments"
        description="Assignments are executable work dispatched to workers. They terminate; the intelligence they produce is preserved."
      />

      {assignments.length === 0 ? (
        <EmptyState
          icon={GitBranch}
          title="No assignments"
          description="Assignments appear here from assignment.md files. They are the leaf of the execution model — created from work orders, run in isolated worktrees."
          hint="src/assignments/A-XXXX/assignment.md"
        />
      ) : (
        <RecordList>
          {assignments.map((a) => (
            <RecordRow
              key={a.id}
              href={`/assignments/${a.id}`}
              id={a.id}
              title={a.title}
              description={a.objective}
              badges={
                <>
                  {a.workerTemplate !== "—" && (
                    <span className="text-xs text-muted-foreground">{a.workerTemplate}</span>
                  )}
                  <StatusBadge status={a.status} />
                </>
              }
            />
          ))}
        </RecordList>
      )}
    </div>
  );
}

root · /srv/aaf