Some (hopefully brief) comments. I’m going to refrain as much as I can from comments that are little more than reiterating the different choices made by PEPs 722 and 723, as I think we’ve all established where we stand on those questions 
The document MAY include the [tool]
table and sub-tables as described in PEP 518.
So [build-system]
is allowed? What does it mean? PEP 723 doesn’t say, and PEP 518 makes no sense in this context.
Non-script running tools MAY choose to read from their expected [tool]
sub-table if the script is the only target of the tool’s functionality. In all other cases tools MUST NOT alter behavior based on the embedded metadata. For example, if a linter is invoked with the path to a directory, it MUST behave the same as if zero files had embedded metadata.
That’s going to be pretty confusing if a user specifies, for example, some ruff configuration, and then it doesn’t apply unless they run ruff on just that one file. The PEP doesn’t address this potential confusion at all, and IMO it’s a significant flaw. In particular, the “How to teach this” section should include a discussion on how to explain the context-sensitive handling of tool config.
We argue that our choice provides easier edits for both humans and tools.
I don’t personally think that a flat assertion like this, with no real detail to back it up, is very helpful in a PEP.
This is the canonical regular expression that may be used to parse the metadata
This is still a bit coy about whether this is the definition of the format, or simply a consequence of the previous definition. We’ve had way too much experience of people reading things like this multiple ways for me to think this won’t be another case of that. Also, you don’t mention encoding, which PEP 722 explicitly noted. You should probably copy the relevant part of that PEP into yours.
For example, this script uses matplotlib
and pandas
to plot a timeseries. It is a good example of a script that you would see in the wild: self-contained and short.
authors = [{name = "GPT-4"}]
makes me rather suspicious here 
I guess I’d question whether this comes under the heading of “but we want to discourage new tools”… Personally, as you can imagine, I don’t have a problem with that, but in the interests of a level playing field, I feel it’s worth mentioning.
On that page we can add a section that describes how to embed the metadata in scripts or we can have a separate page for that which links to the page describing project metadata.
IMO, “how to teach this” really means “how do we ensure people understand the difference between the two use cases and how they behave differently”. This is where I’d like to see the discussion of how to explain to people that, for example, most tools will ignore [build-system]
in an embedded pyproject.toml
.
For situations in which users do not define the name and version fields, the following defaults should be preferred by tools
I know this is not normative, but the “name” recommendation feels weird. For most “natural” uses, I’d expect the name to be the script filename. Generating a unique identifier for a script seems like a very different problem, and while it may be something that should be standardised, I don’t think here is the right place for it (and certainly not as a bit of non-binding advice).
Why not use (possibly restricted) Python syntax?
Did you forget to remove this? It directly argues against the syntax you’re proposing.
Should scripts be able to specify a package index?
This isn’t really needed if you’re proposing pyproject.toml
, as it’s already been dealt with in that context.
Overall, this is looking better than the previous version. Not surprisingly, I still strongly disagree with the idea, and I think the weakest parts of the PEP that remain are because you make an implicit assumption that because pyproject.toml
is a good fit for its existing uses, you don’t need to justify its appropriateness for this use case. So the PEP is probably convincing to people who are already convinced, but does very little to sway anyone who isn’t.
The best section is the discussion of user types in “Why not use a comment block resembling requirements.txt?”. That is a very good survey of the potential users, although I disagree with the conclusions you draw from it - I don’t think it negates the arguments against “nearly but not quite Python” syntax, nor does it answer many of my objections to TOML as a format over “plain text lines”. If your proposal was “PEP 722, but using TOML in a comment block”, then this would be a good argument. But for “use pyproject.toml
-but-not-quite in a Python-but-not-quite assignment statement”, I don’t think it makes enough of a difference.