You begin with a goal: “Automate monthly reports in Python.” The curriculum and exercises follow it. A few days later you change the goal to “Practice cleaning CSV data first.” If an AI assistant edits only the goal sentence and keeps assigning the old report exercise, the material now points in two directions.
If a learning resource is built as goal → curriculum → exercises → concepts → terms, an upstream edit affects downstream work. The solution is to preserve what already exists and mark what needs another decision, rather than deleting everything automatically.
Why review the curriculum after changing the goal?
The diagram shows an approved new goal with a new revision. The previous curriculum and exercises are retained, but their state changes to “review required” until someone checks them against that goal.
For a monthly-report goal, the curriculum may include reading files, aggregating data, and exporting a report. Once the goal narrows to CSV cleaning, file-reading practice may still fit, while a final report exercise may be premature. Changing everything without review loses useful work; keeping everything as approved silently preserves a mismatch.
How do approval and downstream state fit together?
Create each stage through question, draft, feedback, and approval before moving on. When revising existing material, first identify the exact resource, propose the new goal, and obtain the user's approval. Do not change saved content while the goal is only a proposal.
| State | Goal | Curriculum and exercises |
|---|---|---|
| Before the change | Old goal approved | Approved against that goal |
| New goal proposed | Not yet approved | Unchanged |
| New goal approved | New revision approved | Preserved but review required |
| Downstream review complete | New goal approved | Approved again against it |
If a glossary exists, check whether the changed content affects its terms too. Curriculum and exercises are the first obvious places where a goal mismatch appears.
Change only the approved goal and mark dependent material
This small JavaScript function illustrates a state transition after approval, not an AI model or a production database design:
function approveGoal(material, nextGoal) {
const goal = nextGoal.trim();
if (!goal) throw new Error('Learning goal is empty');
if (goal === material.goal.text) return material;
return {
...material,
goal: { text: goal, revision: material.goal.revision + 1 },
curriculum: { ...material.curriculum, status: 'review_required' },
exercises: material.exercises.map((exercise) => ({
...exercise,
status: 'review_required',
})),
};
}Call approveGoal only after the new goal is accepted. The old curriculum and exercise content remain available for comparison; only their status changes.
const saved = {
goal: { text: 'Automate monthly reports in Python', revision: 1 },
curriculum: { title: 'Read files → aggregate → export', status: 'approved' },
exercises: [{ title: 'Build a monthly report', status: 'approved' }],
};
const revised = approveGoal(saved, 'Practice cleaning CSV data first');
console.log(revised.goal.revision); // 2
console.log(revised.curriculum.status); // review_required
console.log(revised.exercises[0].title); // Build a monthly report: still savedApproving the identical goal returns the same object, avoiding needless re-review. The intended checks are that an empty goal is rejected, a changed goal marks dependent stages, and an unchanged goal leaves state intact.
What changes when there are many resources or editors?
“Edit the Python material” may refer to several levels or editions. Identify the right resource before proposing the update. Finding its ID does not prove the current user may edit it; authentication and authorization remain separate checks.
review_required does not regenerate or reapprove the curriculum. A person still compares it with the new goal, revises exercises, and approves each stage. If several editors can save simultaneously, handle version conflicts at persistence time; this example function alone does not solve concurrency.
Key takeaways
Changing an AI learning goal is more than replacing one sentence. After the user approves the new goal, preserve downstream content and mark it for review. Reapprove the parts that still fit and revise the ones that do not, so an old exercise cannot quietly masquerade as part of the new plan.

