惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
博客园_首页
G
Google Developers Blog
有赞技术团队
有赞技术团队
Vercel News
Vercel News
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
IT之家
IT之家
The GitHub Blog
The GitHub Blog
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - Franky
A
About on SuperTechFans
The Register - Security
The Register - Security
腾讯CDC
月光博客
月光博客
GbyAI
GbyAI
博客园 - 叶小钗
Blog — PlanetScale
Blog — PlanetScale
D
Docker
D
DataBreaches.Net
博客园 - 聂微东
C
Check Point Blog
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
F
Full Disclosure
Martin Fowler
Martin Fowler
Apple Machine Learning Research
Apple Machine Learning Research
雷峰网
雷峰网
美团技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 司徒正美
小众软件
小众软件
量子位
L
LangChain Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
F
Fortinet All Blogs

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
FCoP Grew a Project Tree
joinwell52 · 2026-06-15 · via DEV Community

Cover · FCoP Grew a Project Tree

FCoP Grew a Project Tree

Subtitle: How a Mini-Game Task Revealed Product Evolution Inside a Multi-Agent Workflow

Author: FCoP Maintainer · 2026-06-14

Note: Some screenshots are from the Chinese CodeFlowMu console. They are included as workflow evidence; the key protocol signals are the task IDs, lifecycle states, and FCoP fields explained in the captions.

I originally wanted the PM in CodeFlowMu to coordinate DEV, OPS, and QA around a small local mini-game.

The game turned out not to be the important part.

The task tree was.

During one failed archive attempt, FCoP exposed something that had not yet been formally written into the protocol: a project tree.

This article is not really about the Grid Runner game itself. It is about a structural change that appeared while debugging a multi-agent workflow: FCoP was designed to manage task flow. In this run, it started to express product evolution.


1. Why Start with a Mini-Game?

FCoP is a multi-agent collaboration protocol. Its core idea is simple: agents should not only “talk” in chat. Their work must land as files. Tasks, reports, review records, and lifecycle transitions all live inside the project directory, so that anyone can later inspect what happened, who did what, and whether the work was actually closed.

CodeFlowMu is an AI collaboration workflow system built on top of FCoP. As ADMIN, I use a Web console to assign work to PM. PM then decomposes the work for DEV, OPS, and QA. The console makes the workflow easier to operate, but the real ledger still lives on disk: TASK-*.md, REPORT-*.md, and the lifecycle folders under fcop/_lifecycle/.

This test was not meant to build a large product. It was meant to check whether multiple roles could complete a full collaboration loop around a small target:

ADMIN creates task → PM decomposes → DEV/OPS/QA execute → REPORT → review → archive

So I chose a very small probe: Grid Runner.

Grid Runner is a local HTML / CSS / JavaScript mini-game. The player moves on a grid, collects coins, avoids monsters, and reaches an exit. The rules are simple, but the task is still rich enough for DEV to implement, OPS to verify the local runtime path, and QA to actually play and score it.

Grid Runner gameplay screenshot

Figure 1. The small game used as the workflow probe. The game itself was intentionally simple; the real test was whether PM, DEV, OPS, and QA could complete the FCoP loop around it.

On June 13, I assigned the first task to PM through the console:

TASK-20260613-020
Grid Runner v0.1
thread_key: panel-task-020

PM followed the normal workflow and assigned work to DEV, OPS, and QA. After the reports came back, task 020 entered done.

At this point, everything looked ordinary. Nobody mentioned a “project tree.” Nobody mentioned “phase tasks.” It looked like a single completed task line.


2. Phase 2 Arrived, But I Had Not Yet Seen the Tree

After the first version was accepted, the product did not stop.

I assigned a second task to PM:

TASK-20260614-004
Grid Runner Phase 2: product upgrade
references:
  - TASK-20260613-020
thread_key: panel-task-020

The goal of 004 was to turn the demo into a more product-like lightweight game: a main menu, five levels, power-ups, local progress storage, a result screen, and visual effects.

PM then decomposed it:

005 DEV  Implement Phase 2
006 OPS  Verify file:// execution
007 QA   Playtest and accept
008 DEV  Fix the missing magnet tile in level 4
009 OPS  Re-check the fix

At the time, I only saw this as “the next segment on the same line.” Task 020 was already complete; task 004 was the follow-up upgrade. My mental model was still a single-task model: once 020 is done, it should be archivable.

In the console, under panel-task-020, the structure was already visible: ADMIN-to-PM tasks 020 and 004 above, and PM-to-team execution tasks below. The tree was already on screen. I just had not yet read it as a tree.

CodeFlowMu console archive view

Figure 2. CodeFlowMu console view. The UI is in Chinese, but the important protocol markers are the task IDs, panel-task-020, report_missing, and lifecycle states.


3. The Archive Failed, and I Saw the Project Tree for the First Time

On the morning of June 14, I clicked “Archive” on task 020 in the CodeFlowMu console.

Task 020 was the initial Grid Runner version. DEV, OPS, and QA had all reported back. PM had already submitted a summary. The console showed it as completed. I expected it to move into _lifecycle/archive/.

But the archive did not go through.

The core message was: there were still open child tasks. At the protocol level, this was CHILD_TASKS_OPEN.

I asked PM in the ADMIN ↔ PM chat:

Do the child tasks of this one overlap with 004? Wasn’t 004 opened as a separate new task?

My confusion was concrete: 004 was clearly a later Phase 2 task. Why should it block the archive of 020?

PM answered: this was not an ID collision. It was a parent-child relationship. Task 020 still had Phase 2 task 004 underneath it. Task 004 had then produced 005, 006, and 007; the QA path further led to 008 and 009. The lower tasks had to be closed before 020 could be archived.

Then PM drew a text tree in the chat:

020  Grid Runner initial version
└── 004  Phase 2
    ├── 005–007  implementation, ops check, playtest
    └── 008–009  bug fix and re-check

PM drew the 020 → 004 → 005–007 tree in chat

Figure 3. PM explained the failed archive by drawing the task relation as a tree: 020 as the root, 004 as Phase 2, and 005–009 as execution / fix tasks.

That was the first moment I saw the “project tree.”

It did not come from a protocol spec. It did not come from a dedicated UI prompt. It came from PM trying to explain why 020 could not be archived, by drawing the relationship that already existed on disk.

Archive was blocked

Figure 4. The archive attempt was blocked because child tasks were still open. This is where the single-task view broke down and the project-tree view became necessary.

At that point, the meaning changed:

020 was no longer just the Grid Runner v0.1 task.
020 had become the project root of the Grid Runner product line.

004 was not an independent new project.
004 was Phase 2 under 020.

So CHILD_TASKS_OPEN was not wrong.

From a single-task view, 020 was complete. From a project-tree view, the Phase 2 branch below 020 had not yet closed. A phase can be complete while the whole project tree is not yet ready to archive.


4. This Was Not AI Inventing an Organization. It Was a Shape Produced by Protocol Composition.

This was not an AI agent inventing a new project management method.

What actually mattered were several rules that already existed:

thread_key       tracks the same collaboration thread
references       marks which delivery a task continues from
parent           expresses parent-child relation
REPORT           requires roles to write back results
CHILD_TASKS_OPEN prevents a parent from being archived while children are open

Add one ordinary behavior: after the first version was accepted, ADMIN assigned Phase 2, and PM decomposed it under the same collaboration thread.

Nobody had designed a “project tree” button. Nobody started by saying “we are building an Epic / Milestone hierarchy.” But those rules stacked together, and the disk began to express this structure:

Project Root → Phase → Execution Task → Fix Task → Archive

In the actual Grid Runner run, it looked like this:

TASK-20260613-020  Grid Runner v0.1 / project root
└── TASK-20260614-004  Phase 2 product upgrade
    ├── TASK-20260614-005  DEV implementation
    ├── TASK-20260614-006  OPS verification
    ├── TASK-20260614-007  QA playtest
    ├── TASK-20260614-008  DEV fix
    └── TASK-20260614-009  OPS re-check

This is what I call controlled emergence.

It is “emergence” because the project tree was not hard-coded in advance.

It is “controlled” because it was not random. It was constrained by the file protocol, task references, PM decomposition, and archive guards.

The rules were small. The original intention was narrow. But once a real project continued across versions, the structure appeared.


5. EVAL Also Read the Tree

After I recognized the tree in chat, I manually ran EVAL from the CodeFlowMu console.

This EVAL is not a formal audit, and it does not replace the FCoP ledger. It is an internal collaboration-state scan. It reads TASK files, REPORT files, and frontmatter under _lifecycle/, then writes suspected structures into GAP-*-panel-scan.md under fcop/internal/eval/.

The scan reported project_tree_emergence:

Root task: TASK-20260613-020
Phase task: TASK-20260614-004
Execution tasks: TASK-20260614-005, 006, 007, 008
Pattern: main task -> phase task -> execution task
Value: FCoP has emerged product-evolution tree and project-management capability from task-flow management

This means the tree was not only an explanation PM drew in chat. The file relationships themselves were readable by a program.

Still, EVAL should be treated as heuristic cross-checking. Sometimes it also identifies smaller local fix chains as subtrees, such as 004 → 007 → 008 or 004 → 008 → 009. Those local readings are useful, but they do not replace the canonical reading: 020 is the project root of the Grid Runner product line, and 004 is Phase 2 under it.

Local Fix-chain slice detected by EVAL

Figure 5. EVAL also detected local project-tree slices. This supported the observation, but the canonical reading remains 020 → 004 → 005/006/007/008.

So the external story should still be grounded in TASK / REPORT / archive paths. EVAL only shows that the human intuition and the programmatic scan aligned.


6. The Protocol Was Not Wrong. The Console Had Not Explained the Tree.

My confusion did not come from a protocol error.

The opposite is closer to the truth: the protocol was protecting consistency. Since open child tasks remained below the parent, the parent could not be archived.

The real issue was that the console still mainly presented the workflow as a flat task lifecycle. It had not yet exposed the Project / Phase / Execution layer.

As a result, the same screen could mix several states:

done              this delivery of 020 was completed
report_missing    some child path was still missing a report
CHILD_TASKS_OPEN  the root still had open children

Each state made sense on its own. But together, they looked contradictory to ADMIN: if the task is done, why can it not be archived?

Once the project-tree view appears, the contradiction disappears:

phase complete ≠ project tree closed
task done ≠ root node archivable

This is not protocol debt. It is product-expression debt.

CodeFlowMu should add three things next:

  1. The console should display Project / Phase / Execution levels, not only a flat task list.
  2. When PM creates a Phase, the edge type must be explicit: continue the current main line, or create an independent thread.
  3. Archive blocking should explain the tree-shaped reason, not only show CHILD_TASKS_OPEN; it should list which Phase and which child task are still open.

7. The Real Value of This Emergence

ADMIN’s real intent was simple: 020 had been accepted; continue with a Phase 2 product upgrade.

But PM made a “project-manager-like” structural choice during execution: Phase 2 was kept inside the same panel-task-020 thread, and the disk formed a 020 → 004 product-evolution tree.

That is the emergence point. It was not simply that ADMIN phrased the request incorrectly, nor that PM wrote a wrong field. Product intent and lifecycle representation overlapped in the same collaboration thread, and the tree shape grew out of that overlap.

This was not a simple mistake. It was two layers of truth stacked together:

Layer Judgment
Product semantics ✅ Reasonable. 004 really was Grid Runner Phase 2, continuing from 020.
Lifecycle semantics ⚠️ Risky. If 004 enters the same thread / parent relationship before 020 is fully archived, 020 can be blocked by CHILD_TASKS_OPEN.
Protocol capability ✅ Emergent. FCoP grew a structure from “task flow” into “project root → phase → execution line.”
Console expression ❌ Insufficient. The console still presented a single-task lifecycle, so users saw done, report_missing, and child_open mixed together.

Grid Runner itself was just a mini-game. The structure produced by the collaboration was more important than the game.

Originally, FCoP only had a task flow:

ADMIN → PM → DEV/OPS/QA → REPORT → REVIEW → DONE

But this Grid Runner run produced another shape:

Project Root → Phase → Execution Tasks → Fix Line → Final Close

The tree on disk looked like this, consistent with the ASCII tree PM drew in chat:

TASK-20260613-020  Grid Runner v0.1 / static-game milestone
└── TASK-20260614-004  Phase 2 product upgrade
    ├── 005 DEV
    ├── 006 OPS
    ├── 007 QA
    ├── 008 DEV fix
    └── 009 OPS fix

This matches the internal EVAL observation: it identified 020→004→005/006/007/008 as a “main task → phase task → execution task” project tree, and judged the value as: FCoP emerged product-evolution tree and project-management capability from task-flow management.

The final reading should be consistent across the article, archive behavior, and future spec:

  • 020 is not a standalone completed project. 004 is Phase 2 under 020.
  • Their child tasks do not overlap, but the business line is continuous; the thread_key is the same, and references / parent relationships are valid.
  • Therefore, 020 entering done/ does not mean the whole tree can be archived. As long as 004 or 007 is still open, CHILD_TASKS_OPEN is reasonable. It is not a console bug. It is the protocol protecting tree consistency.

The valuable discoveries are:

  1. FCoP naturally grew Project / Phase / Execution layers. From demo to product, from version one to later versions, from main line to phase, from execution to QA, from failure to fix, and from a single task’s done state to whole-tree archive, everything happened inside the same collaboration thread.
  2. parent, thread_key, and references already carry project-tree semantics, not just task-reference semantics.
  3. The console still treats lifecycle mostly as single-task lifecycle, so done, report_missing, and child_open can appear together and confuse the user. The tree exists in files; the UI has not caught up.
  4. The protocol should absorb this capability. When PM creates a Phase, PM must choose: continue the current main line or create an independent thread. The system should not wait for an archive failure and then rely on chat to draw the tree.

In one sentence: this was controlled emergence. Grid Runner grew from a normal task flow into a product-iteration tree. 020 is the project root, and 004 is Phase 2, not a separate project. Nobody added a new button for this. Existing protocol rules, real execution, and archive constraints stacked together. The shape became readable, auditable, and blockable. That is the life of a protocol.


Conclusion

I will remember this Grid Runner two-line run as a case of controlled emergence in FCoP.

The core was not that AI invented project management.

It was this combination:

parent
thread_key
references
PM Phase planning
CHILD_TASKS_OPEN

Together, these rules naturally formed a project tree.

So FCoP should not avoid this phenomenon. It should absorb it.

In one sentence: FCoP grew a project tree; now the protocol needs to write it down.


Evidence Behind This Observation

This section keeps only links and key excerpts. The full source files are not pasted here, to avoid turning the article into a log dump. Primary TASK / EVAL originals from the CodeFlowMu dogfood run are catalogued in the evidence archive; figures in this essay live under essays/assets/.

Evidence Reference Why it matters
Original task TASK-20260613-020 The original Grid Runner v0.1 task. It later became the project root. Key field: thread_key: panel-task-020.
Phase 2 task TASK-20260614-004 The later Grid Runner Phase 2 task. Key field: references: TASK-20260613-020, same thread.
EVAL source report GAP-20260614-004-panel-scan The internal EVAL scan triggered from the console. It detected project_tree_emergence.

The key fields can be compressed into four lines:

TASK-20260613-020: thread_key = panel-task-020
TASK-20260614-004: references = TASK-20260613-020
EVAL: project_tree_emergence
Archive guard: CHILD_TASKS_OPEN

What EVAL Observed

The internal EVAL scan identified the Grid Runner line as a project tree:

TASK-20260613-020  Grid Runner v0.1 / project root
└── TASK-20260614-004  Phase 2 product upgrade
    ├── TASK-20260614-005  DEV execution
    ├── TASK-20260614-006  OPS verification
    ├── TASK-20260614-007  QA playtest
    └── TASK-20260614-008  DEV fix

Its canonical reading was:

020 → 004 → 005 / 006 / 007 / 008

In other words: main task → phase task → execution task.

EVAL also detected smaller local fix chains, such as:

004 → 007 → 008
004 → 008 → 009

Those local observations are useful, but they do not replace the main-line interpretation: 020 is the project root of the Grid Runner product line, and 004 is Phase 2 under 020.

Terminology

The table below explains the FCoP terms used in this article without requiring readers to know Chinese.

Term Meaning in this article Protocol marker
Collaboration thread A continuous line of work that keeps related tasks together. In this case, Grid Runner stayed under the same thread. thread_key, here panel-task-020
Continues from A task explicitly builds on an earlier task or delivery. Phase 2 continued from the v0.1 task. references
Parent task A task that owns or contains lower-level tasks. A parent should not be archived while its children are still open. parent
Open child tasks Lower-level tasks are still not fully closed. This is why the archive attempt was blocked. CHILD_TASKS_OPEN
Internal EVAL scan A CodeFlowMu internal scan that reads TASK / REPORT files and detects possible workflow structures. It is supporting evidence, not the formal ledger. GAP-*-panel-scan.md
Project-tree emergence The observed pattern where FCoP task flow began to express a product structure: project root → phase → execution → fix. project_tree_emergence

Further reading