feat: Rework skills, overview and search - #6
Merged
Merged
Conversation
A repository the core is reading now, one read an hour ago and one never read looked the same on the Repositories screen: what it knew it worked out for itself and forgot on every reload. The core now says when each folder was last read and whether one is being read, and the screen shows that, refreshing itself until a read finishes. Adding a folder no longer asks for a read of its own, because registering one starts it.
Every setting arrived with equal weight, so a group of ten fields asked ten questions where most already had the right answer. What the core marks as tuning now sits behind one line somebody opens, leaving the settings a person has to choose.
The Skills screen only printed what each file said about itself. A skill synced from a coding agent could not be answered for at all, because nothing here may edit those files, and a skill of your own took a trip through the editor and a whole document rewritten. Each row now says whether reviews on this machine read it: when it looks relevant, always, or never. The list can be narrowed to what a review would read, and says that five is the most any one change is read against.
A machine with a dozen folders on it read as a list of a dozen unrelated things, and finding one meant reading all of them. Folders now sit under the owner their name already carries, and the folder, knowledge and review lists each take a word to narrow by once they are long enough to need it.
The model was a text box somebody typed a name into from memory, and a wrong key showed up later as a review failing. The field is now a searchable list of what the core can reach, keeping whatever is already set even when no provider lists it, and saving a model with a key says whether the provider accepts the pair. A screen that says no model is configured now links to the field that fixes it.
The dev server answered the view's own calls with its index page, so working on the view meant rebuilding the binary that embeds it for every change. It now hands those calls to the agent, which is what the readme already claimed.
Adding a folder meant walking down to it one directory at a time, which is the long way round for somebody who already knows where it is. Typing a name now answers with what matches under your home folder, working trees first and shallower paths before deeper ones, and each match shows its path so two folders of the same name can be told apart. Dependencies, build output and hidden directories are left unwalked.
A dropdown reading "When it looks relevant" said in four words what the product says in one everywhere else, and hid the answer until somebody opened it. Each row now carries the same segmented strip the rest of the screens use, with Auto, Always and Never, so which skills reviews read is visible while scanning the list. The editor says Auto too.
The skills screen asked one question twice. "Used for" and "in reviews" were the same thing said in two places, and the kind a skill is read as was mixed into it, so a skill read as a review pass looked like a skill that is only for reviews. There is one answer now: the purposes it applies to, each on, off or unsaid, with the kind beside it as its own column. A purpose nobody said is still decided by the change. Sixty rows of prose are also a list nobody reads, so they are a table: what applies to what is one glance down a column rather than sixty cards. Ctrl or Cmd K finds a skill, a decision, a file or a repository by name from anywhere, asking the core for the code because a graph is too large to hold on a screen. The view also carried neither the purposes nor the kind through to the screen, so both were dropped on the way.
The agent took a query for a drawing and dropped it on the way to the core, so every filter was applied to whatever had already been sent. A search over a repository of five thousand nodes cannot work that way, and now does not have to: the core narrows, the screen draws what came back.
…ainly Reviews is the only use anything acts on. A field for typing other purposes was a field with nothing behind it, so the table asks the one question that has an answer: does reviews use this skill, always, never, or left to the change. The column is Skill uses, the one saying where a skill came from is Source, and the kind it is read as is no longer a column of its own. On the skill itself, two different things were both called "used for": the purpose, and the repository it is kept for. What it is and how it is used are now two groups, and the repository says it is kept for one.
The screen asked about reviews and nothing else, and folded "picked without being asked" into the same control. Both are fixed: the five uses come from the core, each on until turned off, and whether SourceAnt may pick a skill itself is its own switch, shown as a manual mark on the list. Labels are labels now: Skill uses, Source, Description, Files, Read as, Kept for.
"Read as" was uses wearing another name: a review pass and an initialization pass each name an activity, which is what uses already say. The field is gone and a skill's kind is carried as written rather than offered. Scope replaces "Kept for". Automatic selection is a checkbox called that, with one line under it. Every hint on both screens is a fragment, not a sentence about the product.
The detail screen was the edit form: a document opened as a row of text boxes, one keystroke from a change nobody meant. Reading and editing are now two routes. The read view shows the description, the uses, the files, how it is selected and the body as prose, with Edit or Copy as the way in. Deleting moved to the read view, where the thing being deleted is on screen.
…s first Three screens offered "All repositories" and one did not, and choosing it was undone by the next screen that can only draw one, because they shared the same choice and overwrote it. The choice now survives, and a screen that needs one repository falls back to one instead of writing over it. Reviews leads the navigation. A review of a checkout with nothing in it also said "read, not judged", which reads as a failure: it now says the branch matches its base and there was nothing to read.
Adding one asked for seven answers before the first word, above the fold, with the body sharing half its width with a preview nobody had anything to preview yet. It now asks for a name, the line that says what it is about, and the skill itself; the folder name follows what you type. Scope, uses, automatic selection and file patterns sit behind one line that says what they are set to. The button says Add skill.
Four numbers and a card per folder said nothing: a count is only useful beside what it should be. It now leads with the one thing worth doing, whichever it is, and then counts what there is beside the state of it: folders read or not, knowledge waiting for somebody, skills read against the work. Two panels carry what the product knows and nothing surfaced: the last few reviews, and where recent change has landed on what the rest of the code leans on. A table replaces the cards. The line claiming reviews are not here is gone. Counting files no longer loads whole graphs to do it: the agent passes through the count the index already answers with.
… rows "Worth reading first" named nothing: it is the files that change most and are depended on most, so it says Hotspots and one line saying what that means. A card saying everything is fine, with the model's name in it, was neither the most urgent thing nor a thing at all. Nothing urgent, no card. Earlier reviews are rows with what somebody wants from a list: status, name, repository, when, and how long it took, which tells a review that ran from one that gave up at once. The id is not shown, being unreadable and unwanted. Adding a folder says folder or repository.
"Hotspots" named nothing anybody could act on. The panel says what puts a file in it: changed most, depended on most. A setting holding a list of paths is edited as a list rather than as a line of JSON somebody has to punctuate correctly.
The view had been built against a checkout linked in by hand while the lockfile still named a published version that has neither of the pieces it now uses, so a clean install would have built something else. Pinned by commit, as the dashboard pins it, and installed that way here.
Reading one set the page to that review's repository, so going back showed a listing of one, and it wrote over a choice every other screen shares. The result already says which repository it read; the listing keeps whatever you were looking at.
Also names the screens in the order they are in, and says what Ctrl or Cmd K does.
|
This repository is not connected to any of your workspaces. Please connect it at https://app.sourceant.ai to get reviews on it. |
The list answered for code review only, and only for skills whose files it could not edit. It writes the one setting the core now reads, so any use can be answered for on any skill.
nfebe
force-pushed
the
feat/local-machine
branch
from
September 27, 2026 17:16
0847b90 to
1f1b84a
Compare
A review asked for without saying whether to use a model was read and not judged, because nothing said meant no. Nothing said now means what the core means by it, which is a judged review; asking for a read still asks for one.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Skills are a table, with uses editable per row for any skill. Reading a skill and editing one are separate routes.
Overview leads with one action and shows recent reviews plus the files that change most and are depended on most.
Repositories group by owner and say when each was last read. The folder picker searches by name.
Ctrl or Cmd K searches skills, knowledge, code, repositories and pages.
Fixed: a graph query now reaches the core instead of being applied to what was already sent; opening a review no longer narrows the listing to its repository; "all repositories" survives a screen that shows one; the view builds against the design commit the lockfile names.
Pins
@sourceant/designby commit. Merge sourceant/design#6 first.