Most app code starts from the direct-dependency version first. This page shows the exact translation: when code imports a store, imports a service, calls an implementation function, parses a package file, or adds a shell branch, replace it with the Runtime Kit boundary that matches the job.
You are adding a file tree, editor, preview button, command palette action, sidebar item, or dashboard panel. The code works inside one app today, but it does it by making one package depend on another package’s private store, files, or implementation. That is the moment to stop and translate.After this page, you should be able to point at each line of traditional code and name the Bitfield path that replaces it: shared product fact, data name, action request, private UI state, or package file.Traditional code lets one package become the private source every other package imports. The file tree owns the selected file, but the editor, preview button, command palette, and dashboard all import or read the file tree’s private store.Bitfield code keeps the same producer and the same consumers, but none of the consumers depend on the file tree package. The file tree publishes the selected file into Bitfield, then every other package reads the public Bitfield value.Start with the job
Traditional app code usually starts with the nearest import. Bitfield code starts with the job the code is doing.React is one adapter for these reads and requests. A future native shell, command-line shell, game shell, or embedded device shell should use the same public names instead of importing another package’s private code.
What this prevents
Traditional app-code instinct makes the shortest path look correct: import the store, call the service, parse the file, add the shell branch, or move visual timing into a global object. That works until the next package needs the same value from a different place.Bitfield shape prevents every package from depending on every other package by making packages meet through public names:Example 1: selected text for the next assistant request
The feature being added
A note editor lets the user highlight text. Another assistant request area should use that highlighted text. The editor also needs a small debounce so it does not publish every tiny mouse movement.What goes wrong
The editor imports the assistant panel store and mutates it directly.The Bitfield version
Keep the debounce timer private to the editor, then send the public request that updates the shared product fact.What each part owns
Check the result
No editor code imports the assistant-request package store.Example 2: sidebar entries without shell branches
The feature being added
The sidebar needs to show product entries from many packages. Today it may show journal items, previews, dashboards, or support links. Tomorrow it may show package entries nobody has built yet.What goes wrong
The sidebar imports every feature and grows one branch per product area.The Bitfield version
The sidebar reads published package records, finds descriptors with supported placement fields, and renders from those records.What each part owns
Check the result
Adding a package entry should not require importing that package’s React component into the sidebar.Example 3: preview work without importing the preview runner
The feature being added
A button starts or refreshes a project preview. A status panel then reads the preview state.What goes wrong
The button imports the preview implementation and calls it.The Bitfield version
The button asks the public action to do the work. The status panel reads the prepared preview data.What each part owns
Check the result
Read paths and work paths stay separate. Requesting work is not the same as reading prepared state.Example 4: dashboard data without raw storage reads
The feature being added
A compliance or health dashboard shows a prepared view of project facts. The dashboard should render the view and offer actions. It should not become a database client for another package’s private storage shape.What goes wrong
The dashboard imports low-level readers and assembles the other package’s model itself.The Bitfield version
The dashboard reads the named data that the owner exposes.What each part owns
Check the result
If the dashboard depends on how another package stores rows, the boundary is wrong.Example 5: package-owned help content
The feature being added
A package ships help text or starter content that another area can display.What goes wrong
Consumer code reads the package’s private file path.The Bitfield version
The package owns the bytes. The consumer reads prepared content or a package-owned record.What each part owns
Check the result
A package file path is not a public product contract.Larger chain
The tangled version
One handler coordinates everything.The Bitfield split
Each job goes through the boundary that matches it.The public calls
Review checklist
Translation prompt
Next
- See the shared-state version: Share state between packages
- See the work-request version: Ask another package to do work
- Review AI coding rules: Rules for AI agents
- Check public calls: Runtime Kit API