There's a particular kind of frustration that happens when prompting an AI assistant with the same correction multiple times in a single session. The marvels of modern large language models (LLMs) make it so you're working with the most enthusiastic apprentice you'll ever have. However, that apprentice also happens to be an amnesiac. “Yes, I really do want my commit messages formatted that way, we've had this conversation three times already.”
Or perhaps you've experienced the trouble of trying to orchestrate several parallel AI sessions, only to watch them independently start solving the same problems and deleting each other's work.
These frustrations led me down a path of iteration. I worked on early renditions of two GitLab AI features: Explain this vulnerability and Resolve this vulnerability features. They felt naive at the time, and I wanted more from them.
Agentic AI delivered that. Instead of one-shot suggestions I had to prompt for and paste back, an agent could read the codebase, make the change, and run the tests on its own. It was doing the work rather than just advising on it. From there, I moved through GitLab Duo Custom Agents, VS Code integrations, and eventually OpenCode, an open source agent that describes itself as helping you "write code in your terminal, IDE, or desktop."
Along the way, I've distilled what's been working for me. AI coding assistants are genuinely transformative, but they need your engineering instincts to guide them. They amplify both good decisions and bad ones, so direction matters. The tools will keep changing, but here's what's helped my day-to-day engineering so far.
Before diving into the principles, it's worth showing what an optimized AI workflow actually looks like in practice.
Priority comes to me. When I start a session, the AI loads my active sessions, unresolved blockers, standing directives, and recent decisions. It then fetches my GitLab todos, active MRs, and tracked epics, presenting them in my defined priority order: stale items first (things falling through the cracks), review requests from others (don't block teammates), questions needing my response, my own blocked MRs, and finally everything else. I no longer spend time figuring out what I should be doing; the context comes to me.
The focus paradigm has shifted. Software development typically required hours of intense, uninterrupted focus to get anything meaningful done. That's changed. In a 15- or 30-minute window, I can ask what's at the top of the queue, have the AI load context for that item (prior decisions, blockers, relevant procedures), and start delegating coding and testing. The AI brings me up to speed nearly instantly, rather than me needing to rebuild mental context from scratch.
Parallel work on multiple merge requests. I use git worktrees with isolated test databases to have AI sessions work on multiple merge requests simultaneously. Each worktree gets its own session, its own database, and a claiming system prevents sessions from stepping on one another. The AI runs tests, ensures the code works, and I review for correctness.
Recurring tasks are made into procedures. For a priority epic I track, the AI handles weekly status updates by fetching current state from GitLab, comparing to the previous week's state to compute deltas, and drafting the update with progress metrics. The procedure is documented in my directives so any session can execute it consistently.
Token efficiency matters. I've contributed improvements to GitLab's REST and GraphQL API and the OpenCode GitLab plugin to reduce context overhead, and built a local workflow Model Context Protocol (MCP) server that encodes common patterns. Instead of the AI reconstructing how to do something from scratch each time, it calls an optimized tool that handles the data gathering, leaving reasoning to the LLM. This makes responses faster and keeps token usage manageable.
Active delegation is the underlying pattern. I preserve top-level context and alignment while the AI executes specific tasks. Before working on any merge request, the AI claims it to prevent conflicts, loads its history from memory, and checks for relevant directives. I maintain oversight of direction; the AI maintains execution velocity.
Every session starts fresh. Without intervention, you'll re-explain the same preferences, the same conventions, the same quirks of your codebase.
The solution is explicit, persistent directives. Agentic AI tools have begun standardizing on AGENTS.md configuration files that load as boot context. But the key insight isn't that you need directives; it's that they need to be specific.
A vague instruction like "be careful with comments" doesn't work. The AI will acknowledge it and then do whatever it was going to do anyway. What works is something specific:
"ALWAYS verify user IDs exist before posting comments under their name. STOP and ask if unsure."
The all-caps keywords aren't just for emphasis. They seem to make the AI respond more reliably to the instruction.
Pattern to apply: When the AI tool makes a mistake, don't just correct it. Ask it what directive would prevent this mistake next time. Have that dialogue, then ask it to note it for next time. Over time, you build a set of instructions tailored to your actual workflow, not hypothetical best practices.
My agents-config repository used to contain over a dozen specialized configuration files that emerged this way: code review guidelines, merge request workflows, database review procedures, and comment writing standards. Each one exists because I was doing it often enough that it made sense to proceduralize and get the AI to execute it consistently. The memory system I describe later in this article lightened this approach; those directives now live in searchable memory rather than static files. The repository now contains practical examples and a usage guide showing how I work day-to-day.
Running multiple AI sessions simultaneously can be efficient, if you can manage it well. Three terminals, three assistants, three parallel streams of work. But without coordination, you'll probably encounter familiar problems:
If you've done any concurrent programming, you'll recognize these as classic coordination problems. The solutions are similar, too: You need primitives for claiming work, tracking state, and sharing context.
My first solution was file-based working notes. They worked, but they weren't searchable, weren't linked to the work they described, and didn't persist well across days. I needed something that could surface relevant context automatically.
This led me to build opencode-memory, a persistent semantic memory system. The architecture reflects solutions to problems I kept solving by directive: hybrid search (keywords for exact terms, semantics for fuzzy recall), session coordination through claim/release, and boot context that surfaces critical directives automatically.
The system has grown considerably since its first iteration. It's now a full knowledge graph with over 760,000 indexed code entities, 15,000+ memories including conversation summaries, and 27,000 links between them. When GitLab announced Orbit, a knowledge graph that indexes your entire software development lifecycle (SDLC), it lined up almost exactly with the direction I'd been taking locally. Orbit answers cross-SDLC questions like "what breaks if I change this service?" by connecting code, merge requests, and pipelines. My memory module already indexed my codebase locally for fast recall, so rather than reinvent the wider view I wired Orbit in to enhance it. The local memory holds session-level context like decisions, blockers, and procedures, and Orbit adds GitLab's broader SDLC graph on top. One of the best outcomes is that when I mention a function in conversation, the AI recalls exactly where it lives without me having to look it up.
Prior decisions also surface automatically when starting work on a merge request. Blockers persist until explicitly resolved. Procedures defined once are available forever. Reminders automatically bring themselves to my attention where they matter. And the combined graph, my local memory plus Orbit's SDLC data, answers those questions far more efficiently and effectively than a plain text search ever did.
No idea is unique. Searching for memory systems for AI coding assistants reveals dozens of approaches. Somebody probably already built what you were thinking about in a coffee-fueled AI rampage three weeks before you imagined it. There's even a PyPI package called opencode-memory that does something very similar to what I built, just with a different vector database backend.
The barrier to building what you need has dropped so dramatically that many people independently arrive at similar solutions. You can go from idea to working prototype in a week.
I'd recommend checking whether something already exists before spinning up a new project. If it almost solves your problem, consider whether contributing might be better than creating another variant. This advice is as old as software development itself; AI just exacerbates it a hundredfold.
My memory system barely offered much over existing solutions at first. It's only after months of iteration and deep GitLab integration that I feel it's somewhat more justified. I did at least contribute improvements back to the OpenCode GitLab plugin rather than forking it, because that's where my changes could help the most people.
The question worth asking yourself: Did I bother to look if something already exists and solves this problem, or has AI made it so easy to code that I've ignored all forms of due diligence?
The vectorized memory search was an immediate win. I transitioned to using it the same day I built it. Recalling useful details became trivial. The next challenge was getting the AI to know there was something worth remembering implicitly, without me prompting it every time.
I'd made progress: token-efficient memory of specific procedures, a growing corpus of innate recall memories. But it felt like I was just rebuilding AGENTS.md with fancy additions. I needed something smarter.
The solution was proactive context injection. Instead of the AI calling recall tools explicitly, the system now automatically searches for relevant memories before each interaction. When I mention a merge request number, relevant prior decisions appear in context without me asking. When I'm about to write a comment, the comment-writing guidelines surface automatically. Most of the time, at any rate. It's still a work in progress, but each day I hone it a little further.
This shift from active to passive recall made a real difference. Over 30 days, the system achieved around 91% effectiveness at surfacing relevant context automatically. Sessions with proactive injection needed zero explicit recall calls on average, compared to 17 without it. It's not perfect; there are still moments where I need to tell the AI to remember something or to improve. But it's an iterative process, and it's getting better.
The remaining misses were instructive. Many happened while I was iterating on how boot context loading worked. The fix was a boot gate: a minimal trigger in the startup context that tells the AI to pause and load directives before doing anything else. Even with proactive injection, sometimes the AI needs to be told to stop and think first.
AI can execute procedures reasonably consistently, if those procedures are in context. It can improve its own instructions, if prompted to think about it. It can coordinate across sessions, if given the primitives to do so.
But AI doesn't notice things implicitly. It doesn't feel that a procedure is awkward. It doesn't recognize that you've hit this same problem three times this week. It doesn't have the pattern recognition that comes from years of debugging production systems at 2 a.m. while wondering if perhaps carpentry might have been a better career choice. At least, not yet.
The sweet spot seems to be using AI to eliminate menial work, providing the right context at the right times, and watching for what it misses. You provide strategic oversight and pattern recognition. The AI provides tireless execution and enthusiasm for tasks we once found tedious and time-consuming. That's extremely empowering.
I've watched AI enthusiastically build features while introducing concurrency bugs into its own tooling, blocking itself with synchronous operations. It had no idea. In hindsight, this was an alignment problem. I could have planned with it earlier to ensure a good async pattern. I'd hoped it would build a better pattern from the start, but I was being optimistic. One redirect from me pointing out the architectural flaw, and it was fixed in minutes.
That's the pattern: human spots the problem, AI executes the fix rapidly. I could have done it myself, just not as quickly. AI can't detect meta-inefficiencies yet, though I'm sure someone's busy writing a dedicated agent for that.
Working this way means accepting constant change. My day-to-day work has shifted completely, and repeatedly, in the space of months. Compare that to how workflows changed slowly over years earlier in my career.
Don't try to settle into a "new normal." It will change. The tools that help today may be obsolete next week at the rate we're going.
Rather, iterate on your tooling itself. The workflow that helps you work faster becomes the subject of optimization. I've contributed new API endpoints to GitLab, including group uploads and GraphQL mutations for MR workflows, specifically because I needed them for AI-assisted development.
It's a meta-loop: better tools lead to more productivity, which creates more capacity to improve tools. There's an old adage: "Give me six hours to chop down a tree and I will spend the first four sharpening the axe." I spend a fair bit of time these days sharpening my axe. I've never had a better grindstone.
Code is a commodity now. We're no longer paid primarily to type it. We're paid to know what code should exist. To recognize when an approach is fundamentally flawed. To spot inefficiencies before they become problems. To provide the direction that turns raw capability into useful outcomes.
I'd been working on guidance for how GitLab's CREDIT values applied to AI use, and then GitLab Act 2 retired CREDIT entirely, replacing it with new operating principles built for the agentic era. A good example of how fast this space shifts: My own guidance was overtaken before it landed. But the core insight remains: Getting this balance right matters at an organizational level, not just a personal one. AI should augment human work, not substitute for it.
The tools will keep evolving. The specifics will change. But this fundamental insight won't: AI amplifies human judgment. It shouldn't replace it, though it tries if you let it, usually at the cost of code quality and stability. Vibe coding can take you far, but even with the most thorough AI reviews, there's an assurance of quality and careful consideration in design that I've not yet seen AI provide on its own.
Several colleagues at GitLab have started using variations of this workflow, and watching them experience the same "aha" moments has been validating. One recently messaged me: "Definitely noticed an improvement in my sessions since using the plugin," meaning the opencode-memory module. I won't pretend that didn't make my entire day. The questions shift from "how do I get AI to do X" to "how do I give AI the context it needs to do X well." That's the real unlock: not the tools themselves, but the realization that context is the bottleneck.
Fascinatingly, the better you get at this, the more you start to realize that you may be the bottleneck. But sometimes that's also an indication that your own processes could be improved even more. I don't feel like I've reached a maximum yet, not by far. Different tasks benefit from different approaches, even when AI-empowered, and there's still plenty of experimenting to do.
One final note on pace: The memory system has seen 143 commits in under a month. It's built on MCP, which means it works with any agent that speaks the protocol: not just OpenCode, but Claude CLI, Cursor, and others. By the time you read this, I've probably added features I haven't thought of yet. That's the nature of working in this space right now. The tools evolve faster than the documentation.
The tools mentioned in this article are open source: agents-config for AI directive configurations, and opencode-memory for persistent session memory.

Медленный запрос в PostgreSQL часто начинается с ошибки в оценках: планировщик ждёт сотню строк, получает тысячи и выбирает план, который разваливается под реальной нагрузкой.
Разберём, откуда PostgreSQL берёт статистику, как ANALYZE её собирает и по каким признакам понять, что проблема действительно в оценках планировщика.
UCL researchers warn repeated exam attempts may dent students’ confidence and raise risk of dropping out
Forcing teenagers who fail GCSEs into multiple resits has a negative impact on their mental health, according to research to be published as pupils receive their grades on Thursday.
The study by academics at University College London (UCL) compared the mental wellbeing of students in England, Wales and Northern Ireland who failed to reach a grade 4 or equivalent in maths or English GCSEs – and found that only those in England, where resits are mandatory, showed significantly lower wellbeing.
Continue reading...
Hugging Face опубликовал свежий обзор состояния экосистемы открытых моделей, и одна деталь в нём выглядит интереснее очередного сравнения результатов моделей. Платформа уже отдельно отслеживает запросы, которые создаются не человеком напрямую, а агентами для программирования, такими как Claude Code, Codex и другие системы, самостоятельно работающие с репозиториями, моделями и вычислительной инфраструктурой. Получается, что у Hugging Face постепенно появляется новый тип пользователя — программный ИИ-агент, который сам ищет данные, получает файлы и взаимодействует с сервисами платформы.
Распределение такого трафика меняется достаточно быстро. Среди идентифицированных запросов от ИИ-агентов доля Claude Code снизилась с 67,8 % в апреле до 44,4 % в июле, тогда как доля Codex за тот же период выросла с 10,4 % до 20,8 %. При этом почти четверть июльских запросов была создана агентными системами, которые Hugging Face пока не смог однозначно классифицировать, а за несколько месяцев появилось более десятка новых идентификаторов программных клиентов.
Читать далееPM wants to reduce department’s stranglehold on public purse and bring long-term thinking to economic policy
Andy Burnham is far from the first prime minister to dream of taming the power of the mighty Treasury.
Boris Johnson all but forced the resignation of Sajid Javid by handpicking his team; Margaret Thatcher favoured her economic adviser Alan Walters over Nigel Lawson, prompting the latter’s furious resignation; and Tony Blair and Gordon Brown’s power struggle was the stuff of Whitehall legend.
Continue reading...
Lawyers for Rep. Joyce Beatty asked a judge to rule speedily on the complex's renovation and entrance tarp. The National Symphony Orchestra also announced its new season, away from the Kennedy Center.
(Image credit: Brendan Smialowski)

Привет!
С недавних пор я занимаюсь разработкой онлайн-редактора карт mapus.ai и делаю это с большим интересом. Цель: дать возможность любому желающему создавать интерактивные географические карты за минуты, имея одну лишь идею или задачу, сформулированную текстом. Знаний и установки специализированных приложений не требуется, приносить «материал с собой» не обязательно.
Цель этой публикации — показать одну из возможностей продукта. Назовём это навыком Шерлока Холмса: визуализация статистических исследований для поиска закономерностей, подтверждения или опровержения гипотез.
Читать далееDiscovery marks latest grim finding in lake as water levels in crucial reservoir outside Las Vegas continue to decline
Human remains have once again been discovered at Lake Mead outside Las Vegas, Nevada, marking the latest in a line of gruesome discoveries as water levels in the crucial reservoir continue to drop, authorities said.
These remains were discovered on 16 August, USA Today reported. The National Park Service (NPS) told the outlet there did not appear to be anything suspicious about the body.
Continue reading...Victims received less compensation than shareholders in the company behind its flammable cladding. Parliament must make corporations pay for harm caused
There is something profoundly wrong when the company behind Grenfell Tower’s flammable cladding paid more compensation to its shareholders than to victims of the disaster. Of Arconic’s £86m in Grenfell-related settlements, all but £1.5m was covered by insurers. Hardly enough to make a multinational think again. The company whose product the inquiry found was the “primary cause” of the fire’s rapid spread has ended up paying only a fraction of the wider social cost, while the multibillion-pound bill for making hundreds of buildings safe falls largely on the state. In June 2017, 72 people – including 18 children – died in London’s Grenfell Tower fire. Almost a decade later, nobody has been criminally charged over its causes. It’s hard to conclude anything but that Britain’s system of corporate accountability is rotten.
A new report by the thinktank Common Wealth and the financial investigations group FIND suggests putting right this state of affairs in England and Wales by adopting two changes that parliament could enact quickly. The first is a “failure to prevent” law that would make companies responsible for having adequate systems to prevent foreseeable serious harm. The second is to adopt a “punitive damages” approach. Rather than compensating victims for their loss, punitive damages ask what a company should pay for its conduct. Such an award against Arconic could have been used to meet the costs of remediation, the report says, “at no public cost”.
Continue reading...The Trump administration’s ‘America first’ approach has contributed to the scale of the crisis now unfolding in one of the world’s poorest countries
For months health experts have warned that the scale of the Ebola outbreak in the Democratic Republic of the Congo (DRC) could surpass the one that swept west Africa in 2014-16. This week, the authorities in the DRC announced that a grim milestone has already been passed: at least 2,325 people have died from the virus, making it the deadliest of the country’s 17 outbreaks and the fastest-growing in history.
There is no effective vaccine against Bundibugyo – a rare strain of the virus that spread fatally undetected during the spring, often being misdiagnosed as malaria or typhoid. In contrast to neighbouring Uganda, which succeeded in eliminating an outbreak, multiple factors are combining to let the disease rip through the DRC. The worst-affected region is contested by armed groups, and a context of population displacement and chronic insecurity has made monitoring and surveillance more difficult. Ebola treatment centres have been attacked as a result of misinformation and community distrust.
Continue reading...Image captured in early June shows animal foraging in the waterway in first since early 1900s, signaling its recovery
An otter has been spotted in the Bronx River for the first time in more than 100 years, in a further sign that New York’s previously befouled waterways are recovering some of their ecological health.
The North American river otter was photographed by a motion-activated camera foraging near some vegetation in the Bronx River, a waterway that flows through New York’s Bronx and empties into the East River.
Continue reading...Air gets a new multiproject view: open several projects in one window and run agents across them in parallel. The sidebar groups tasks by project, so you always see which agent is working on which project – no more window juggling for multirepo work.
Markdown files now render as formatted text while you edit – clear headings, formatted lists, highlighted code – with no split preview. The syntax recedes while you read and appears when you edit.
And on Windows, Chinese, Japanese, Korean, and other IMEs now work as intended. This was one of our most-reported Windows issues, and it’s fixed.
Also in this release: a new Customize screen lets you pick your keymap, theme, and accent color on first launch, and Agent Review now lets you choose which agent and model run the review.
Download the latest Air release
Until now, opening another repository in Air meant opening another Air window. The new multiproject view puts multiple projects and their tasks in one place. The sidebar groups tasks by project, search covers the full task list, and each task keeps its project and branch visible as you move between them.
This changes the unit of navigation in Air from windows to tasks. Start an agent in your backend repo, switch to the frontend while it runs, and then jump to a completed task in a third project – all without losing track of which agent is working where. Running and completed tasks stay visible together, so you can coordinate multirepo work as one workflow instead of several disconnected Air sessions.
You can also group tasks by status to see what needs attention, what’s running, and what’s ready to review.
Air now renders any .md file with clear heading hierarchy, formatted lists, distinct code blocks, and syntax highlighting for commands, paths, and inline code.
It is still an ordinary Markdown file. The syntax recedes while you read and appears when you edit, making READMEs, plans, notes, and documentation easier to scan without parsing the formatting first.
Download the latest Air release at air.dev/download or update through JetBrains Toolbox. Try it, then tell us how it works for you.
President says he plans to meet dictator this year but Kim Yo-jong says Washington remains Pyongyang’s enemy
Donald Trump has said he is planning to meet North Korea’s Kim Jong-un later this year, though the reclusive leader’s younger sister cast doubt on their communications and dampened hopes of a diplomatic breakthrough between them.
Trump, who also claimed North Korea had 57 nuclear weapons, had suggested he and Kim were holding secret negotiations on Tuesday after announcing the US would downgrade its participation in military exercises held by South Korea, a US ally. Asked whether Kim had responded to his request for a conversation, Trump said: “Yeah, he has.”
Continue reading...President says he plans to meet dictator this year but Kim Yo-jong says Washington remains Pyongyang’s enemy
Donald Trump has said he is planning to meet North Korea’s Kim Jong-un later this year, though the reclusive leader’s younger sister cast doubt on their communications and dampened hopes of a diplomatic breakthrough between them.
Trump, who also claimed North Korea had 57 nuclear weapons, had suggested he and Kim were holding secret negotiations on Tuesday after announcing the US would downgrade its participation in military exercises held by South Korea, a US ally. Asked whether Kim had responded to his request for a conversation, Trump said: “Yeah, he has.”
Continue reading...
История Леопольда Ашенбреннера ещё недавно выглядела как почти идеальная иллюстрация того, как можно заработать на революции искусственного интеллекта.
После ухода из OpenAI в 2024 году он написал статью под названием «Ситуационная осведомленность», посвящённую будущему искусственного интеллекта, в которой подробно изложил свои взгляды на будущее искусственного интеллекта. Статья была полна сенсационных заявлений и получила широкое распространение в интернете.
Читать далееЗадача:
Есть "коробка" с работающей 24/7 OmniOS. Со временем в "коробке" накопилось столько всего важного, что стоимость этой информации превысила стоимость самой "коробки". Наиболее вероятная угроза информации - это фатальный сбой файловой системы при сбоях электропитания. Нужно научить OmniOS "слушать" сообщения от ИБП и самостоятельно выключаться пока ИБП выдает напряжение.
Читать далее