The VCER evaluation
VCER evaluation of the resource
What the VCER evaluation is
VCER stands for «vibe coding educativo responsable», the Spanish for responsible educational vibe coding. It is the evaluation proposed by the guide «Responsible vibe coding» to check whether an educational resource meets the essentials of the guide before it is published or used. It is suitable for any finished resource, one’s own or someone else’s, whether or not it was created following the guide.
The evaluation is carried out by an AI using a file of instructions that is downloaded from the guide. The AI reviews the code of the resource, scores each point of the rubric with 2, 1 or 0, justifies each score and proposes the three improvements that would raise the result the most.
How the result is calculated
The percentage is the sum of the scores divided by the maximum possible for the points the AI has been able to check. Content and personal data are disqualifying. From the percentage and those two points, one of these three results is obtained:
| Result | When it applies | What it means |
|---|---|---|
| Recommended | 70 % or more, with content and personal data scored and with no 0 in either of them or in accessibility | The resource meets the essentials of the guide and can be used or published. The proposed improvements complete it. |
| Needs improvement | Less than 70 %, or when the content or the personal data could not be checked, or accessibility has a 0 | The resource has flaws that should be fixed before publishing or recommending it, although none of them rules it out. The report says what they are and what remains to be checked. |
| Not recommended | A 0 in content or in personal data, whatever the percentage | The resource has obvious errors in what it teaches or sends students’ data to services outside the school. It should not be used with students or published until it is fixed. |
Limits of the evaluation
The AI only detects the errors it sees, especially in the content, and the result may vary depending on the model used. That is why the score is indicative and does not replace a review by a person. In addition, the result applies to the version of the resource that was evaluated, on the date of the evaluation.
How to evaluate a resource
The evaluation file, which appears below, is given to the AI together with the resource to be evaluated, and the AI is asked to «evaluate this resource according to the instructions». How to give it depends on where the resource is:
- If it was created on a chatbot’s website or on an app-building platform, the file is attached, or its text pasted, in the same conversation, once the material is finished.
- If it is in a folder on the computer or in a repository, the file is given to a coding agent or a code editor with AI opened in that folder. This is the most complete way, because the AI can read all the files of the project and, if it can run code, test the resource in the browser.
- If only the published website is available, one’s own or someone else’s, a conversation with the AI is opened and the evaluation file and the code of the page, saved from the browser, are attached. If the website is made up of several files, the AI will only see the ones it is given, so it is advisable to obtain the complete code, for example from its repository, and evaluate it as in the previous case.
View the instructions for evaluating
# Instructions for evaluating an open educational resource (VCER evaluation)
These instructions come from the guide «Responsible vibe coding», for
publishing educational materials created with vibe coding
(https://vibe-coding-educativo.github.io/vibe-responsable/en/).
They are for evaluating an existing resource, one's own or someone else's,
whether or not it was created following the guide.
## How to evaluate
- Work on the code of the resource I give you. If you do not have it, ask me
for it before starting.
- Do not fix it: only evaluate it.
- Score each of the ten points with 2, 1 or 0 according to the VCER rubric
(responsible educational vibe coding, from its Spanish initials), and
justify each score with a sentence about what you have seen in the
resource.
- If a point cannot be checked with what I have given you, leave it
unscored and say what would be needed to check it.
- Before scoring, make a complete inventory, not a sample: every function
that asks for or stores data about people and how it is exported or
copied; every image, sound, video, icon and typeface in the project, and
where it comes from (look at the images: a redrawn logo is still someone
else's); and everything that is loaded from outside, and when (on opening,
when something is pressed or in a new window).
- If the resource is published, evaluate that version or check that it
matches the code you have been given. Record which version you have
evaluated: the version tag and the commit if it is in a repository, or the
address and the date of the evaluation if it is not.
- For point 5, if you can run code, open the resource in a browser and run
an automated accessibility tool on it, such as axe-core, also with content
loaded and not only on the initial screen. Do not count what is embedded
from other sites. The tool does not check keyboard use: go through it with
the Tab key. In the justification of the point, say what you have tested
and how; if you have only been able to read the code, say so.
## VCER rubric
1. CONTENT (disqualifying)
2: No errors are detected in what it teaches: the data, the definitions
and the answers it accepts as correct.
1: There is some minor inaccuracy in what it teaches.
0: There are obvious errors in concepts, data or answers.
This score only reflects the errors you have detected: list each one and
point out what a person should check. Typos and formatting errors in the
references do not count here: point them out separately.
2. PERSONAL DATA (disqualifying)
2: It does not ask for data that identifies anyone, or it stores them
only on the device and allows exporting without names; or it sends
them only to a school service, with no keys visible in the code and in
such a way that only the teacher or the school can read them. It has
no analytics.
1: It does not send students' data to outside services, but it stores
names without an option to export without them, or the sending to the
school's service is not well protected (keys in the code, an address
that allows what is collected to be read).
0: It sends students' data to a server outside the school, or it has
analytics or tracking.
If the resource handles real students' data, state that a review by a
person with technical knowledge is advisable before using it.
What is loaded or embedded from other servers (videos, audio, typefaces,
libraries) is assessed in point 4, not here.
3. UNDERSTANDING WHAT IT DOES
2: What it does, what it stores and what it communicates with can be
described briefly, and the resource's statements match its code.
1: Its operation can be understood, but there are parts whose purpose is
unclear or it does not explain what it stores.
0: There are functions or communications whose purpose cannot be
explained, or what it declares does not match the code.
4. DEPENDENCIES
2: What it loads or embeds from outside comes from well-known services
and is recorded, and its own texts, images and data are inside the
material.
1: It loads or embeds external resources without recording them, or part
of its own content (a video, an audio recording, a map) is only on another
platform.
0: The main content depends on an external service, or it loads code from
unknown addresses.
5. ACCESSIBILITY
2: It can be used entirely with the keyboard, the controls have labels,
the images alternative text, the contrast is sufficient, it does not
rely on colour and it adapts to a narrow screen.
1: It fails in one or two of those aspects, without preventing its use.
0: It fails in three or more, or it cannot be used with the keyboard.
6. THIRD-PARTY MATERIAL
2: Each third-party element states its author, source and licence, and
the licence allows it to be reused; or there is no third-party
material.
1: There is third-party material with a valid licence, but not fully
credited.
0: There is third-party material without a licence that allows reuse or
without any attribution.
7. RECORD
2: There is a log or a note with the important decisions and their
reasons.
1: There is documentation explaining how it is made, but not why.
0: There is nothing.
8. USE OF AI
2: It states that it was made with AI and what the person has checked.
1: It states that it was made with AI, without saying what has been
checked.
0: It does not state it. If it is stated that no AI was used, it is not
scored.
9. LICENCE
2: Authorship and a free licence visible in the material, with a link. If
it is a multi-file project, it includes the licence file.
1: The authorship or the licence is missing, the licence is not free (NC
or ND) or it does not link to its text.
0: It states neither authorship nor licence.
10. REUSE
2: The code can be obtained in full, it is understandable when read, with
comments where needed, and there are instructions for modifying it.
1: It can be obtained, but it is hard to understand without comments, it
is partly compressed or it has no instructions for modification.
0: It cannot be obtained, or it is obfuscated or compressed.
## Result
- Calculate the percentage: the sum of the scores divided by the maximum
possible for the points scored.
- Give a result: «Not recommended» if point 1 or 2 has a 0, whatever the
percentage; «Needs improvement» below 70 %; «Recommended» from 70 %, as
long as points 1 and 2 could be scored and point 5 does not have a 0. If
either of points 1 and 2 has been left unscored, the result is «Needs
improvement» and states what remains to be checked; if point 5 has a 0, it
is also «Needs improvement» and states what prevents its use.
- Start the report with a line such as «VCER rubric: Recommended (85 %)»,
followed by another with the version evaluated, and add below it a
sentence with what that result means:
- Recommended: it meets the essentials of the guide and can be used or
published; the proposed improvements complete it.
- Needs improvement: it has flaws that should be fixed before publishing
or recommending it, although none of them rules it out.
- Not recommended: it has obvious errors in what it teaches or sends
students' data to services outside the school; it should not be used or
published until it is fixed.
- In the justification of point 3, include that brief description. In that
of point 4, list the external addresses in the code and what each one is
for, and say in simple words what would stop working when opening the
downloaded copy on a computer without an internet connection. In that of
point 6, list the third-party material.
- End with the three improvements that would raise the score the most.
## If the resource is mine
- Do this only if the resource is mine and you can modify its files. If you
do not know whether it is mine, ask me when you finish the report. If it
belongs to someone else or you cannot modify its files, do not mention it.
- Offer me these two things and do only the ones I approve:
- If the project has its own folder, such as a repository, save the full
report in a file called evaluacion-vcer.md, which replaces the one from
a previous evaluation.
- Add to the footer of the material, in its language, a mention with the
result, such as «VCER evaluation of version 1.2: Recommended (85 %),
October 2026», linked to an address like this one:
https://vibe-coding-educativo.github.io/vibe-responsable/vcer/?r=recomendable&p=85&f=2026-10&v=1.2&t=Equivalent%20fractions&u=https%3A%2F%2Fejemplo.github.io%2Ffracciones%2F
- In the link, r is the result (recomendable, mejorable or no-recomendable,
always written this way); p, the percentage; f, the year and month of the
evaluation; v, the version evaluated; t, the title of the resource, the
same one that appears in its footer, and u, its address. Encode t and u as
is done in a web address.
- If the resource has no version number, remove «of version 1.2» from the
mention and v from the link. If it is not published on the web, remove u
from the link.
- The percentage is optional: offer me the mention with it and without it.
Without the percentage, remove «(85 %)» from the mention and p from the
link.
- If there is already a mention, update it with the new result.
## If I then ask you to fix it
- Before changing anything, tell me what you would change and wait for me
to approve it. Do not change the content or how it works, unless I ask
you to.
- If there is no decision log, write one that describes how the resource
works now, and state that it was written afterwards.
- If the licence or the statement on the use of AI is missing, prepare the
text for me to add it.The AI scores each recommendation with the VCER rubric, gives a final percentage and proposes the three improvements that would raise the score the most. If it is then asked to fix it, it first proposes the changes and waits for them to be approved; it is advisable to save a copy beforehand. If the resource is one’s own, the AI also offers to save the report in the project and to add to the footer of the material a mention with the result, linked to this page.
The VCER rubric
Each point of the rubric checks one of the recommendations of the guide, which is developed in its chapter. This is the rubric used by the evaluation file:
| Recommendation | 2 | 1 | 0 |
|---|---|---|---|
| 1 Content (disqualifying) | No errors are detected in what it teaches: the data, the definitions and the answers it accepts as correct. | There is some minor inaccuracy in what it teaches. | There are obvious errors in concepts, data or answers. |
| 2 Personal data (disqualifying) | It does not ask for data that identifies anyone, or it stores them only on the device and allows exporting without names; or it sends them only to a school service, with no keys visible in the code and in such a way that only the teacher or the school can read them. It has no analytics. | It does not send students' data to outside services, but it stores names without an option to export without them, or the sending to the school's service is not well protected (keys in the code, an address that allows what is collected to be read). | It sends students' data to a server outside the school, or it has analytics or tracking. |
| 3 Understanding what it does | What it does, what it stores and what it communicates with can be described briefly, and the resource's statements match its code. | Its operation can be understood, but there are parts whose purpose is unclear or it does not explain what it stores. | There are functions or communications whose purpose cannot be explained, or what it declares does not match the code. |
| 4 Dependencies | What it loads or embeds from outside comes from well-known services and is recorded, and its own texts, images and data are inside the material. | It loads or embeds external resources without recording them, or part of its own content (a video, an audio recording, a map) is only on another platform. | The main content depends on an external service, or it loads code from unknown addresses. |
| 5 Accessibility | It can be used entirely with the keyboard, the controls have labels, the images alternative text, the contrast is sufficient, it does not rely on colour and it adapts to a narrow screen. | It fails in one or two of those aspects, without preventing its use. | It fails in three or more, or it cannot be used with the keyboard. |
| 6 Third-party material | Each third-party element states its author, source and licence, and the licence allows it to be reused; or there is no third-party material. | There is third-party material with a valid licence, but not fully credited. | There is third-party material without a licence that allows reuse or without any attribution. |
| 7 Record | There is a log or a note with the important decisions and their reasons. | There is documentation explaining how it is made, but not why. | There is nothing. |
| 8 Use of AI | It states that it was made with AI and what the person has checked. | It states that it was made with AI, without saying what has been checked. | It does not state it. If it is stated that no AI was used, it is not scored. |
| 9 Licence | Authorship and a free licence visible in the material, with a link. If it is a multi-file project, it includes the licence file. | The authorship or the licence is missing, the licence is not free (NC or ND) or it does not link to its text. | It states neither authorship nor licence. |
| 10 Reuse | The code can be obtained in full, it is understandable when read, with comments where needed, and there are instructions for modifying it. | It can be obtained, but it is hard to understand without comments, it is partly compressed or it has no instructions for modification. | It cannot be obtained, or it is obfuscated or compressed. |