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

推荐订阅源

博客园 - 叶小钗
O
OpenAI News
V
V2EX
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
S
Schneier on Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
小众软件
小众软件
L
LINUX DO - 热门话题
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - Franky
Security Latest
Security Latest
S
SegmentFault 最新的问题
Project Zero
Project Zero
Spread Privacy
Spread Privacy
K
Kaspersky official blog
J
Java Code Geeks
V
Vulnerabilities – Threatpost
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
月光博客
月光博客
T
The Exploit Database - CXSecurity.com
L
Lohrmann on Cybersecurity
人人都是产品经理
人人都是产品经理
博客园 - 三生石上(FineUI控件)
Scott Helme
Scott Helme
WordPress大学
WordPress大学
量子位
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
AWS News Blog
AWS News Blog
Help Net Security
Help Net Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Simon Willison's Weblog
Simon Willison's Weblog
S
Secure Thoughts
博客园 - 【当耐特】
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
V
Visual Studio Blog
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
腾讯CDC
Cyberwarzone
Cyberwarzone
IT之家
IT之家
GbyAI
GbyAI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
云风的 BLOG
云风的 BLOG
T
Troy Hunt's Blog
D
Docker

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
Why AI Agents Need a Project Layer - Part 1
Ekhtiram Mam · 2026-05-23 · via DEV Community

This is the first part of a series about why even the most powerful AI agents today need more than just access to your codebase.
They need access to the living state of the project: tasks, rules, decisions, notes, and workflow context.

In this article, I focus on the core problem. I won’t dive into architecture, Freeform boards, Git integration, or Vibeocus Lens yet — those will come in later parts.

AI is good at writing code, but weak at seeing the project

Modern AI coding assistants have become very good at writing code. Give them a prompt like this:

Fix coupon validation in the cart and add tests.

Enter fullscreen mode Exit fullscreen mode

…and you’ll often get working code, tests, and a decent explanation. This has become normal.

However, in real development, a feature is almost never just one chat message. It comes with rich context:

  • the task and its status
  • priority and deadlines
  • project rules
  • previous architectural decisions
  • release constraints
  • related notes
  • Definition of Done

AI handles the code part well, but it often fails to understand the surrounding workflow. This is where the main problem begins.

The developer becomes the integration layer

A typical flow looks like this: the developer copies information from a task into an AI chat, gets the result, then manually updates the task status, writes notes, creates follow-up tasks, and adds release comments.

The AI session and the project management system live in parallel universes. The developer is forced to act as a constant translator between them.

This is manageable when AI is used occasionally. When it becomes a daily tool, the constant manual bridging starts to hurt productivity.

A board shows the task, but not the full context

A Kanban board is great at visualizing workflow for humans. But an AI agent doesn’t live inside your head.

It doesn’t automatically know why a task is important, which rules apply, which decisions are still valid, or what “done” actually means.

Here’s what a task might look like as structured data:

{
  "id": 108,
  "title": "Fix coupon validation in the cart",
  "status": "in-progress",
  "priority": "high",
  "description": "Coupons must not apply to discounted products. Update the server-side validation and add unit tests.",
  "start_date": "2026-05-23",
  "due_date": "2026-05-27"
}

Enter fullscreen mode Exit fullscreen mode

This is already much better than a plain prompt. But for high-quality work, the agent often also needs project rules, active decisions, related documents, and notes.

That’s why I’m not talking about just a better task tracker — I’m talking about a project layer.

The board remains a useful interface for the human. The project layer makes the working context available to the AI agent in a structured way.

Why Markdown and Obsidian did not fully solve this for me

Many developers have already tried to solve this problem with Markdown files, Obsidian, Logseq, or similar local knowledge bases.

I did that too.

This approach has real strengths:

  • Markdown is easy to read;
  • files are local;
  • notes can be stored in Git;
  • documents can be linked together;
  • an AI agent can be given access to a folder with project context.

But over time, I ran into a limitation.

A folder of Markdown files is good at storing text, but it is not very good at expressing workflow state.

For example, it is hard for an agent to reliably understand:

  • which task is active right now;
  • which project rules are mandatory;
  • which decisions are still active;
  • which notes are drafts and which are part of project memory;
  • where progress should be written;
  • which actions can be performed and which should only be suggested;
  • how a task, document, note, and code change are connected.

Markdown is still useful. But by itself, it is not a project layer for an AI agent.

An AI can read a file. That is not the same as receiving a structured answer: here is the project, here are the active tasks, here are the rules, here are the related decisions, here are the allowed tools, and here is where notes live.

I needed more than a set of files. I needed a layer that turns project context into data and actions an agent can understand.

What I mean by a project layer

A project layer is an intermediate layer between an AI session and the real state of the project.

It should not replace the code editor.
It should not replace Git.
It should not be another abstract board for the sake of having another board.
Its job is simpler: give the AI agent access to the project context that the developer usually keeps in their head.

For example:

  • which projects exist;
  • where the project code lives;
  • where project notes live;
  • which tasks are in progress;
  • which rules must be followed;
  • which decisions have already been made;
  • which documents belong to the project;
  • which tasks can be created after a session;
  • which status update can be suggested after implementation.

In other words, the project layer does not answer only "how should this code be written?"

It also answers: "inside which project context should this code be written?"

That distinction matters.

Where MCP fits in

MCP, the Model Context Protocol, becomes interesting exactly here.

It gives AI clients a structured way to connect to external data and tools.

Instead of manually pasting task descriptions, project rules, and notes into a chat every time, an AI agent can ask a local MCP server for that context.

For example, before starting work, an agent could run something like this:

vibeocus_list_projects
vibeocus_list_tasks({ "project_id": 42, "status": "in-progress" })
vibeocus_get_project_rules({ "project_id": 42 })
vibeocus_list_project_decisions({ "project_id": 42, "status": "active" })

Enter fullscreen mode Exit fullscreen mode

In a simplified way, this turns project state into an API for the AI agent.

Not a wall of text.
Not a random folder of files.
A set of clear requests and responses.

For example, a project rule might look like this:

- Validate input data with Zod.
- Cart business logic lives in `src/server/services/cart`.
- Route handlers must not contain business logic directly.
- Do not add new dependencies without approval.
- After TypeScript changes, run the linter and tests.

Enter fullscreen mode Exit fullscreen mode

If the agent sees this rule before changing the code, it is less likely to put business logic in the wrong place or add an unnecessary dependency.

This does not make AI perfect.
But it gives it a much better starting context.

How this is implemented in Vibeocus

Vibeocus is my implementation of this kind of project layer. You can see it here →

It keeps the project state local and exposes it to AI tools through a dedicated MCP helper (vibeocus-mcp).

Inside Vibeocus, there are tasks, rules, decisions, notes, documents, relations between projects, and other parts of project memory.

For an AI agent, this is not just a UI. Through MCP, it can receive structured context and treat it as part of the development process.

For the human, it remains a normal workspace: you can view tasks on a board, in a list, or in a calendar, read notes, and control changes.

I do not want the agent to "take over" the project.

A good workflow looks different:

  1. The developer selects or defines a task.
  2. The agent reads project context through MCP.
  3. The agent helps with implementation.
  4. The agent suggests a task update or a new follow-up task.
  5. The developer reviews the result.
  6. The project state stays aligned with the actual work.

AI should not be a chaotic owner of the board.

It should be a participant in the workflow: one that sees the right context and works inside clear boundaries.

Why this will matter more

AI accelerates execution.

But the faster execution becomes, the more visible coordination problems become.

One AI session can include several things at once:

  • implementing a feature;
  • fixing a bug;
  • refactoring shared code;
  • adding tests;
  • discovering a new edge case;
  • creating a follow-up task;
  • updating notes;
  • preparing for a release.

From a coding perspective, that can be productive.

From a project management perspective, it can quickly become noise if the result only stays inside a chat.

That is why I believe the next important part of AI-assisted development is not only better code generation.

The next important part is connecting AI sessions to project state.

What is next in the series

This first article is about the general pain, the idea of a project layer, and MCP as a way to connect an AI agent with project state.

Next, I want to break Vibeocus down by layers so each part focuses on one concrete workflow instead of trying to describe the whole product at once:

  • Part 2: tasks, rules, and decisions — how tasks, rules, and decisions give the agent working context before code changes.
  • Part 3: architecture, Freeform boards, Git, and visual project context — how diagrams, relations, commits, and visual maps help reason about complex features and plan work.
  • Part 4: documents and client requirements — how to upload a technical specification, connect it to a project, and use it as context for tasks and AI sessions.
  • Part 5: Vibeocus Lens — how visual website annotations, selected elements, and screenshots become project context for an agent.

Final thought

AI coding does not end with code generation.
Real software work needs tasks, rules, decisions, memory, statuses, and coordination.
If an AI agent helps write code, it should see at least part of that context in a structured way.
That is what I call a project layer.
Vibeocus is one implementation of that layer: a local workspace that connects project state with AI tools through MCP.
I am curious how other developers are solving this problem.

How do you connect AI coding sessions with the real tasks, rules, and decisions of your project?
And does MCP feel like the right interface for this kind of project layer?